Add video upload feature to Studio

This still needs to be audited for accessibility.

Please review: @nasthagiri @andy-armstrong @frrrances @talbs 
FYI: @clrux @doctoryes @karadhya 

*JIRA Tickets:*
* https://openedx.atlassian.net/browse/MA-28
* https://openedx.atlassian.net/browse/MA-85
* https://openedx.atlassian.net/browse/MA-86

*UX Design:* https://edx-wiki.atlassian.net/wiki/display/UX/Video+Uploads+in+Studio
*Functional Spec:* https://openedx.atlassian.net/wiki/display/MA/Video+Pipeline
*Sandbox:* http://studio.video-pipeline.m.sandbox.edx.org/

Allowing a ValueError to escape results in a 500, which is clearly incorrect. I would actually prefer to return a 400, but this decorator was already overly permissive in setting `request.json = {}` even if the request is not JSON, so I ultimately decided to be consistent with that permissive spirit. I'm happy to change this to a 400.