(Bug 4715) Media upload form

Initial commit of the upload form.
(Bug 4715) Generate file ID after upload

Merges the generate id and upload step
(Bug 5137) Pass in status code to api_error
(Bug 4715) Make image uploading work

This adds the code that parses image uploads via multipart attachment.
This also wires the controller to the backend, which allows the frontend
to actually upload files!

There's also one sneaky bit of property related code that does nothing
so far.