User activity by day and month

Early review of direction, here's the approach:

* Refactor user activity to build a common table that shows which users performed which categories of action on each day in each course
* Generate downstream aggregates from the common table
* Introduce a calendar table (which can later be extended to include complex things like fiscal year/quarter stuff)

If this approach looks good I'll write a bunch of unit tests for the calendar table, and increase the coverage of the user activity computation.

@brianhw @rocha
I guess I still think the ambiguity is relevant, but your argument is a good one (someone who was dealing with 30 day months is going to be in the minority). So I guess I'm convinced, I put in dateutil.

I still think there is some ambiguity around leap years, but it's not really worth thinking about too much since the library does what I want it to do and the unit tests express my intent.