Rename homework to course

A course of study is a collection of lessons. Homework is specifically
lessons given to a person, and this collection of lessons doesn't know
anything about a user.
Remove prefix from UserHomework
Untangle fetch and restore logic
Do not provide fresh content in restore endpoint
Duplicate the course exercises definition
Move path declaration into progression
Don't include new exercise in lesson directly
Pull progression up to homework
Reorder parameter list in lesson
Pull languages out of progression
Extract method
Dedupe sorting by exercise name
Split apart protected/unprotected routes
Merge branch 'rehydrate'

This clarifies responsibilities in preparation for work on #20