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.