Mobile API release

@wedaly, @stephensanchez, @cpennington, @andy-armstrong: The mobile API feature branch. Still need to bring some more tests in and add a few docstrings, but I've cleaned up the worst of it. There are two basic themes with this:

1. Create a REST endpoint for read-only access to course video listings and very basic course information.
2. Make edx-platform aware of VAL, as a way to abstract away the specific locations of videos. This takes the form of an optional edx_video_id that's been added to the VideoModule.

A lot of the changes to VideoModule code was just extraction and moving things around a bit to separate out more of the transcripts functionality. One of the big design decisions was to make this as backward compatible and gracefully degrading as possible, so I tried to change as little real VideoModule code as possible.

Still waiting on Jenkins, but I think I've fixed all the broken tests. There were some minor issues with the upgrade from djangorestframework 2.3.5 -> 2.3.14 that took a while to track down. The last Jenkins build saw some OAuth2 related test fail, but I strongly suspect it has to do with the fact that there might be an outdated library on the Jenkins box with the same name (the analytics folks made a fork which I've switched over to using).

If you use `val_video_info = local_cache['course_videos'].get(..., {})`, then you can use `duration = val_video_info.get('duration')` and `size = val_video_info.get('file_size', 0)`.