Add produce_agent_state() to infrastructure/presence that converts
ADR-023 presence dicts into Matrix-compatible agent_state messages
with type, agent_id, data (display_name, role, status, mood, energy,
bark), and Unix timestamp.
Includes status derivation from current_focus (thinking/speaking/idle/online)
and comprehensive tests covering all fields, defaults, and status mapping.
Fixes#669
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>