mattdrayer/server-api-merge: Server API contribution

Initial submission of the Server API work done by the edX Solutions Team -- needs some more unit test coverage and some seemingly-unrelated tests are not currently passing, but the system appears to be mainly functional at this point.

More tomorrow...

@clintonb @mikigoyal @smagoun, FYI
Holy super-long file, Batman! Can we break this up into a test module and a few different files?