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 
I guess my feeling on this is that this piece of the *API* is stable (you ask for some fields, you get some subset of those fields back as data, and the rest back as `None`). But the caller has to be aware that this API isn't promising long-lived access to the fields retrieved this way.