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

QA branch version of #2799

https://jira.ets.berkeley.edu/jira/browse/CLC-4083