Implement next available exercise

Given a progression and some set of slugs, figure out what the next
available slug is.
Implement lesson

Given a progression and a set of current problems, return a set
of exercises consisting of all the current problems as well as
the next available problem in that progression.
Read available languages from disk
Implement homework

Homework represents a collection of lessons.
Fetch exercises for user from exercism.io
Implement fetch exercises endpoint
Merge branch 'fetch-exercises'