Respond with json when accept header set

This is required to support javascript drag and drop uploading of files.
The upload code was refactored to output a common response object this
meant the removal of the error page to unify where the response
redirected to. Messages have been moved inline until we gain the
intermediary "preview" pages.
Add dropzone implementation for file upload

Drag and drop file upload with custom styling and error handling