Fixes BLD-1104
Merge pull request #3962 from edx/dcs/BLD-1104

Fixes BLD-1104
Fix performance regression
Remove course_from_id
don't fetch whole course when the root will do
don't fetch even the root if the id will do
check for definition.data == null
OpaqueKey copy and deepcopy are identity ops
because keys are immutable
pymongo son optimizations
Update to tagged version of pymongo
Use commit hash v tag for pymongo
Update hash to latest version.
Fix variable name.
Revert back to mongo-python-driver based on the 2.4.1 tag.
Add fallback for org based roles
Opaque-Keys: Response to code review
Notes convert course_id to course_key
Fix to excess asset query
Change document_class back to dict
Don't create model objects to check the roles cache
Fix import
Opaque-keys: response to code review
Add tests of RoleCache
Fix logging bug in openended grading