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 
@mulby @clintonb `get_children` should find the cached children which `get_course` fetched down to `depth` and it looks like you're being careful to use the same `depth` on `get_course` as here; so, I believe you've nailed it. You could add a `count_queries` or whatever it's called to your test to ensure that's so. The number of queries should == depth.