CLC-3339 Extract AbstractModel superclass, with UserSpecific and SingleSource model subclasses
CLC-3339 Give smart_fetch_from_cache an optional jsonify mode
CLC-3339 Push filtering and JSON caching down into YoutubeProxy layer
CLC-3339 Push formatting functionality down into PlaylistsProxy level
CLC - 3316  Log researchHub non-usage as debug
CLC-3339 Adjust expirations for textbooks & video proxies
CLC-3339 Remove MyTextbooks model, inline it into TextBooksProxy
Merge pull request #2201 from wonjunnn/CLC-3316

CLC - 3316  Log researchHub non-usage as debug
CLC-3339 Fold the Playlist and Youtube models into their proxy classes
CLC-3339 Move BlogFeed into lib/proxies
CLC-3339 Rename BlogFeed -> BlogFeedProxy
CLC-3317 Handle more course credit code and PNP flag combinations
And fix some current logic.
Merge pull request #2203 from raydavis/raywip

CLC-3317 Handle more course credit code and PNP flag combinations
CLC-3339 Remove useless SingleSourceModel
Merge pull request #2204 from ctweney/clc-3339-b

CLC-3339 Models not part of Live Updates can cache error states for a long time
CLC-3368 Distinguish output of incremental and batch Canvas refresh jobs
CLC-3163 - Display room numbers without leading zeros, My Academics
CLC-3379 Fix NoMethodErrors from log statements
Merge pull request #2205 from raydavis/raywip

CLC-3368 Distinguish output of incremental and batch Canvas refresh jobs
Merge pull request #2207 from ctweney/clc-3379

CLC-3379 Fix NoMethodErrors from log statements