Refactor daily course enrollment

@brianhw as discussed.

Note the introduction of HiveQueryToMysqlTask.

Still needs a bunch of docs and testing. A quick validation run indicates I didn't actually change the output at all.
A general nit across many of the new docstrings:  the summary line should end with a period.