Added course enrollment

Change-Id: I973fcb2672b53e0aa64158bea46b8cbb9c371c17

@rocha 
What you call `course_key` is not an opaque key in the LMS sense. Is a `course_id` string. The opaque key can be serialized to a string, but it is not equivalent to the `course_id` string.

`OpaqueKey` is a class, and there are derived classes, for example `CourseKey`.