Cache S3 data fetches in memcached to reduce generation time

This implements our own wrapper around the Dragonfly S3 store, caching
retrieval for 5 minutes (currently) so that processing multiple image
sizes doesn't require multiple fetches.