live-to-VOD: finalize, publish, update and delete through moderation grants
The operator-only routes on the internal API (POST /finalize-livestream, GET/POST/PUT/DELETE /videos) are gone. The same operations are XRPC now, under place.stream.media, and open to the streamer and to any moderator they have granted livestream.manage, through the delegated-moderation path every other moderation procedure uses: the caller's session is checked, the permission is checked, and the records are written with the streamer's stored session. - finalizeLivestream takes livestreams (several records of one recording, concatenated in creation order), title, description, publish (publish the video record as soon as the VOD is finalized instead of leaving a draft) and endLivestream (end records the streamer never stopped). - publishVideo takes an optional record: without one it is built from the upload's livestream(s) and the given title and description, the repair for an upload finalized without publish or a record that was deleted. - listVideos (repo) lists a streamer's video records and this node's uploads for them; updateVideo retitles, retags or points a record at a finished upload's tracks; deleteVideo deletes a record and, on request, its track records. The content blob and the upload always stay. No UI here: the app's Livestreams tab keeps calling finalizeLivestream as before, and the rest is reachable by any client with the grant.