perf: add Cache-Control headers to list endpoints
Browser was re-fetching 940KB concordance, 2MB talks list, etc. on
every page load. Now all list endpoints return Cache-Control headers:
1h max-age with stale-while-revalidate for instant repeat loads.
Applies to: getTalks, getSpeakers, getConcepts, getDiscussion,
getConceptClusters, getConcordance.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>