Turn the course envelope into an actual object that just stores an existing course_key
Clean up coverage counting a little bit
Make modulestores properly propogate **kwargs
Clean up exception definitions
Inherit from JSONField rather than Field for json-based fields
Allow Timedelta and RelativeTime fields to handle from_json being passed timedelta objects
Use InheritanceMixin in more modulestore tests
Use more idiomatic python for deleting an attribute
Use more performant opaque-key version