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
What if we move this to one place:

Here: `from edx.analytics.tasks.calendar import Week`

There:
```
try:
  from isoweek import Week
except ImportError:
  Week = NotImplemented
```

Another option is to put it in `utils` or do the import inside the function that uses Week.