Implement shim for mobile video events.

This PR addresses the following issues:

1) All requests return a 200 OK unless there is an authorization failure. This is deliberate in case the secret key is compromised.
2) Push all of the nasty logic necessary to generate compatible video events into the LMS instead of trying to do that mapping on the mobile device
3) Stop using the deprecated "action" field in the segment.io event. According to their support team this field should not be used anymore.

Fixes: AN-3818
Probably out of scope, but are we calling something "id"?  That's pretty generic.  'html_id' or 'usage_id' or something would help indicate what kind of thing this id represents.