d1636ed9

By: Michael Lynch <git@mtlynch.io>

Make ffmpeg injectable, split media.go, and add animated-GIF tests

Split importers/media.go into three files (media.go, writer.go, avif.go)
to separate import orchestration, storage abstraction, and ffmpeg
conversion. Add a GIFConverter function type so ImportMedia reads the
GIF from fsys instead of the real filesystem and delegates conversion
through an injected function — enabling in-memory tests without ffmpeg.

Co-Authored-By: Claude Opus 4.6 <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