Courses API

This is a subset of #6109. The goal here is to trim the code down to exactly what will be needed by Insights and get it merged soon. We will revisit the other APIs soon after so that the edx-solutions fork isn't too divergent.

@mulby @mattdrayer @cpennington @ormsbee @dsjen @smagoun @shnayder @mikigoyal 
Don't both the endpoints and the data returned by them need to be stable in order to not break consuming code?

If a field was renamed and I wrote code that did something with the data in that field... it is slightly less bad, but still breaking for it to start returning null instead of the valid value it used to return.