Added S3 as a storage option for image uploads

I had to add this functionality so that I could deploy to Heroku. Heroku does not retain the "public" directory (or anything else for that matter) when you push an update, so storing elsewhere is required.