Save Hotlinked image to CDN

This commit updates the image hotlinking process to download the
hotlinked image to our CDN server while at the same time returning a url
for the hotlinked image as before. The main difference is that a copy of
the hotlinked image is stored on s3 but while it's uploading, the
hotlinkined image is served instead. Once the upload finished, the
copied version will be served out to users.

The only drawback is that if an image is not able to saved to the CDN,
the hotlinked image will always be served instead. Currently, there is
no file size restrictions on hotlinked images and the only thing that
could cause the hotlinked image from being saved is downtime on the CDN
or if a non-image file is being hotlinked.