Adds POST /api/matrix/bark endpoint that accepts a visitor message and
returns Timmy's bark response. This is the HTTP fallback for when WebSocket
isn't available.
Features:
- Accepts JSON {text: str, visitor_id: str}
- Returns JSON bark message in produce_bark() format
- Uses existing _generate_bark() for response generation
- Rate-limited to 1 request per 3 seconds per visitor_id
- Returns 429 with Retry-After header if rate limited
- Graceful fallback on LLM errors
Refs #675