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 break actually change the output at all.