4440bf97

By: Michael Lynch <git@mtlynch.io>

Parse photos into a ProcessablePhoto instead of validating

Replace validatePhotoResolution with uploads.NewProcessablePhoto, which
checks the size and pixel limits and returns a ProcessablePhoto. ProcessPhoto
now accepts only that type, so the type system guarantees we never process a
photo that hasn't been checked against the limits.

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