chat: add chat stream writer + formatter
First of three sub-lodes for the chat backend rewrite (parent plan:
chat-refactor). Establishes the chat stream persistence layer that the
forthcoming singleton backend (2c) will write to, and the formatter +
indexer wiring that makes chat turns searchable via `sol call journal
search` after rescan.
`convey/chat_stream.py` is the sole write-owner for
`chronicle/*/chat/*/chat.jsonl`. Segment rollover mirrors the 300-second
window semantics from `think/importers/shared.py::_window_messages`.
`think/chat_formatter.py` registers before the `*/*/*/talents/*.md`
fallback so chat events are indexed as their own domain. No runtime
callers yet — those land in 2a (talent layer) and 2c (backend flip).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>