perf(canopy-tanf): cache work-activity summaries for month-end reporting runs

get_work_activities_summary hits the DB every invocation. During ACF-199 WPR generation, the same summary is computed for every AU in the reporting month — O(N) queries for an unchanging snapshot.

Add an in-memory LRU cache (keyed on (person_id, month)) with invalidation on any tanf_work_activities mutation.

Deferred until the reporting pipeline is benchmarked at state scale.

Extracted from canopy-tanf-work-activities-list.adoc § Potential Improvements.