Allow multiple enrollment methods in the course model.

An enrollment method is a module that can enroll and unenroll
a student in a specific course. OpenMOOC comes with a default
implementation that allows all registered users to enroll in
a course.
Merge feature-pluggable-enrollment branch