Few fixes/tweaks for the Cache app, but still a bit to go

Hey man,

Here are a few things I did to tweak the application. There's actually a few more things to do to make it more secure, but I figured I had already changed a lot of things already :)
I get why you did Listing.create -- it allows an image to be attached to it immediately, so it makes a lot of sense. But it means you have to sacrifice a bit on validations etc, so I feel like most of the time we work from the opposite end -- create a model that holds the image, push it back into the form, and then associate it with it afterwards. This helps decouple the things attached to the Listing and also means we only have to worry about stray photos, not stray listings.