feat(canopy-applications): PUT /v1/applications/{id} for programs_requested updates
Source: application-intake plan Potential Improvements.
Today an application is created and immutable. ACA §1413 single-streamlined applications need to support adding/removing programs after submission (e.g., applicant initially requests SNAP only, then adds Medicaid based on screening). Add PUT /v1/applications/{id} that allows updating programs_requested.
Acceptance: PUT endpoint with idempotent program list update; preserves existing application_programs rows where the program persists, deletes rows for removed programs, inserts rows for added programs. Wraps in a transaction (relates to #314 (closed)).