Break out course key fields into event context

Event log consumers parsing events may not have the opaque-keys library available in the execution environment they are using to analyze the tracking logs and/or may not even be python based. In order to simplify the analysis, and hopefully prevent string parsing of the identifier, we split out the various fields of the course key and store them alongside the serialized key in the context.

Reviewers: @rocha @brianhw @cpennington
Is there a way of doing this where the fields can be introspected?  Just wondering if this can be made independent of future changes to opaque_keys by actually asking it for the fields.  Or maybe one could ask a CourseKey for its dict representation rather than unpacking it here outside of opaque_keys.