CLC-3689 Making LiveUpdates and User-cache-expiration a mixin

https://jira.ets.berkeley.edu/jira/browse/CLC-3689

Streamlines a lot of code relating to how classes get into the LiveUpdates and user-cache expiration party. 

One thing I noticed while coding this is that many classes that have user-specific data never get expired by the user cache expiration (because it was easy to miss in the old system, I guess). I'll make a separate JIRA to add UserCacheExpiry to those classes once this is merged.