3c69f290

By: Michael Lynch <git@mtlynch.io>

Support animated GIF uploads

Owners can now upload a GIF, which is re-encoded to an animated AVIF (plus
thumbnails) and served like a photo. This is the first upload path that shells
out to ffmpeg, so the app derivations are wrapped with ffmpeg on PATH and the
runtime image installs it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>