transcripts: stream attribution in pill tooltips (A10)
Day-timeline pills now show contributing streams in their hover title;
zoom-timeline pills name the segment's stream in title and aria-label.
Server-side: a private fold helper in apps/transcripts/routes.py converts
each (start, end) range into {start, end, streams} for the audio and
screen arrays returned from /api/ranges/<day> and /api/day/<day>. The
fold uses a half-open overlap rule and de-duplicates streams.
cluster_scan and scan_day signatures are unchanged.
Client-side: addSegmentIndicator takes a streams[] argument; the title
appends ` · {sorted streams joined by ` + `}` with `+N` overflow when
more than three contributors exist. Zoom-pill tooltip and aria-label
end with the segment's stream verbatim.
Baseline regenerated to the new object shape.