livehls: live HLS write side over the muxl event stream
New pkg/livehls turns muxl's init + canonical-segment events into a growing appendable fMP4 plus a per-track byte-range index, and serves live HLS playlists (EXT-X-MAP + EXT-X-BYTERANGE, increasing EXT-X-MEDIA-SEQUENCE, no ENDLIST until Finalize). This is "muxl hls but for livestreams": the write side is append-init-then-segments + offset tracking; the read side is plain byte-range HLS. Segments are appended verbatim, so a C2PA/S2PA signature over a canonical segment is preserved. fMP4 (not flat MP4) is the appendable format a live stream needs. Index JSON tags match vod.Metafile so the existing playback read side can serve it; a sliding WithWindow(n) yields a DVR-style live window without truncating the stored bytes. Decoupled from the ingest pipeline (consumes *muxl.MuxlEvent + an io.Writer) so it can be wired into WHIP/RTMP ingest or the VOD path. Unit-tested for offset math, live/VOD playlists, window eviction, and the master playlist. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>