feat(canopy-applications): list/search endpoint with filters

Source: application-intake plan Potential Improvements.

GET /v1/applications/{id} exists; there is no list/search endpoint. The worker-portal needs GET /v1/applications?submitter_id=X&program=snap&from=YYYY-MM-DD&to=YYYY-MM-DD&status=pending to populate caseload search.

Acceptance: indexed filter on (submitted_by, status, submitted_at, program); pagination via limit/cursor; OpenAPI snapshot updated.