enrollments.
The goal for this PR is to have a single mechanism for registering users and
reducing the number of places where special-casing for ccx courses is needed. The
migration at this point is purposefully limited to convert ccx memberships into
student enrollments when moving forward. No backward migration is in place at the
moment. The ccx membership tables are not removed at this time. It is possible to go
backwards and forwards multiple times with no errors or data loss.
What happened:
* First, I merged `0004_default_lowest_passing_grade_to_None.py`, which adds `null=True` to `lowest_passing_grade`.
* Later, Renzo merged `0004_auto__add_field_courseoverview_enrollment_start__add_field_courseoverv.py`, which adds a bunch of enrollment-related fields
* Neither migrations' `models` variables reflects the changes in the other one.
* release currently has just `0004_default...`
* master and rc/2015-07-22 have `0004_auto...` and `0004_default...`, in that order.
What this commit changes:
* Change `0004_auto...` to `0005_add_enrollment_fields.py`
* Update `models` in `0005_...` to have `null=True` for `lowest_passing_grade`
Sets the Enrollment API free of the modulestore by replacing modulestore queries with calls to the CourseOverview model. Course deletion invalidates the corresponding CourseOverview. XCOM-462.
Celery requires all tasks to be in a tasks module. Also, the task has been updated to use default values if the the course structure generator encounters a block without the graded or format fields.