CLC-4083 Split up UserCourses into 1 class per cacheable unit

https://jira.ets.berkeley.edu/jira/browse/CLC-4083

Please wait on green Bamboo: https://bamboo.ets.berkeley.edu/bamboo/browse/MYB-CLCMVPCHRIS5-1

I'll do a followup PR for QA if this is approved. 
Either that, or reimplement the "key" method. Thanks for catching this! I'll fix.