678b109d

By: Michael Lynch <git@mtlynch.io>

Support video uploads with background transcoding

Owners can now upload a video. The upload is recorded immediately as
"processing" and transcoded to WebM (plus a thumbnail extracted from a still
frame) by a background worker, so the request returns right away. A processing
item is visible only to its uploader until the transcode completes, at which
point it becomes visible to everyone.

This adds a media status model:
- a status column on media_items and a MediaStatus type
- ReadMediaItems is scoped to the viewer so it returns ready items plus the
  viewer's own in-flight uploads
- MarkMediaItemReady flips an item to ready when transcoding finishes
- the media page shows a "processing in progress" notice

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
configuredevShellbackendbackend-devcheck-bashcheck-frontendcheck-go-formattingcheck-go-test-packagescheck-trailing-newlinecheck-trailing-whitespacediagramdocker-imagee2e-testsgo-testsimport-from-tinybeanslint-sqllittle-momentslittle-moments-devx86_64-linux