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 think we should isolate test code (and constants like these) to the tests package. I'm not sure what is meant by "take up a lot of text space" so at a minimum we should clarify this comment.