Add provider fallback for agent system
When an agent's configured AI provider is down (per health/agents.json),
the system now transparently retries with the backup provider:
- Pre-flight swap in prepare_config() using cached health data
- On-failure retry in _execute_with_tools() and _execute_generate()
- FallbackEvent emitted to JSONL stream when swaps happen
- Background health re-check requested when data is stale (>1h)
- provider= override added to generate_with_result() for retry path