feat(viewer): Add photo viewer with thumbnail generation and caching
Add `attic viewer` command that serves a browser-based photo grid via
Hummingbird. Thumbnails are generated lazily on first request (400px
JPEG) with three-tier caching: local disk, S3, generate from original.
Includes viewport-based memory management, infinite scroll, lightbox
with keyboard nav, filtering by year/album/media type/favorites, and
video poster frame extraction via AVAssetImageGenerator.