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
Hmm.  But are these part of the API?  If they are really internal implementation details, then we don't want them leaking out.  Whereas if we had a .get_key_values() method or somesuch as part of the API, then these details can remain hidden.