CLC-3339 Models not part of Live Updates can cache error states for a long time

JIRA: https://jira.ets.berkeley.edu/jira/browse/CLC-3339

The non-user-specific models that aren't part of Live updates (Textbooks, Youtube, Playlists) cached their Ruby data in one place (at the proxy level), and a JSONified copy of that data in another (at the model level). 

I've solved this problem by consolidating those proxies and their models so that the controllers just call directly to the proxies, which are always returning JSON (and caching it). There's no more duplicate caching. 

I've also refactored the MyMergedModel line so that it's clear what it's for. It has an AbstractModel parent that's used for models that participate in the Live updates fun. UserSpecificModel is a parent for all models that are keyed to a user id (ie, most of them). The SingleSourceModel designates models that aren't part of live updates and aren't user-specific. 

In some of the refactored proxies I inlined some instance vars and adjusted their specs to match.