Add dynamic context registry for tier/label/group discovery
Replace static CONTEXT_DEFAULTS with dynamic discovery system that reads
tier/label/group from category and agent JSON configs at runtime.
- Add tier/label/group field support to observe/categories/*.json
- Add tier/label/group field support to muse/agents/*.json and apps/*/agents/*.json
- Add _discover_agent_contexts() to scan agent JSONs for metadata
- Add _build_context_registry() to merge static defaults with discovered configs
- Add get_context_registry() with lazy initialization and caching
- Update _resolve_tier() and resolve_provider() to use dynamic registry
- Add app-specific groups: "Todos" for todos agents, "Entities" for entities agents
- Add tests for registry discovery and structure validation
- Update docs/PROVIDERS.md with dynamic discovery documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>