First commit of server code.
removed V4 media to work-around github file size limit
replaced files with Blobs

Using static media files does not work because it exceeds the
file size limit on Google App Engine.

The work-around is to store the media files as Blobs in a database
and then serve parts of the blob on request. This requires creating
an upload service to be able to put blobs in to the store.
Added .mp4 to skip list

There is no need to upload the mp4 files, as they are now handled by
uploading blobs.
Refactor form to use CSRF token

Refactored the uploading of blobs to require an admin login and
to protect the form with a csrf token.
refactor csrf to avoid origin IP check

The blob upload implementation on GAE does not maintain the original
source IP address when passing control to the class that handles the
POST message. This caused the csrf checks to fail, because it was
using geo-ip information to check that the client that requested the
form was the same one that submitted the form.

The work-around is to use the Origin and Referer fields, which are
preserved.