feat(dream): summarize pipeline health from JSONL logs
Add think.pipeline_health with summarize_pipeline_day(day) -> dict and
pipeline_status_message(summary) -> dict | None. The summarizer reads
dream health JSONL files written by DreamJSONLWriter (b8c4c2d3, 2efe9a44),
aggregates per-mode run and agent counts, flags four anomaly kinds
(agent_failure, activity_agents_missing, daily_agents_missing soft-miss
on today vs past days, segment_runs_missing as a soft signal), and
classifies status as healthy/warning/stale with stale taking precedence.
Never raises — malformed lines are skipped, missing dirs return an empty
healthy summary. pipeline_status_message returns None when healthy so
consumers can stay silent by default.