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 
The term assignment is simply what I am using to describe a group of problems (e.g. homework, exam). The client can perform this filtering; but, in order to do it properly, it will need the entire content tree to ensure all problems are retrieved. I'd rather not send over content unnecessarily.