CLC-3197 Sketch of a possible generic way of handling proxy errors
CLC-2425 Relocate complex campus-data logic to a more appropriate directory
"lib/proxies" was intended more for straightforward proxying
CLC-2425 Instructor section nesting by Course Option
CLC-3197 Revise generic proxy exception handling style
CLC-3197 Smarter way of telling when TorqueBox features are available
CLC-3197 Update readme
CLC-2425 Document the Course Option insanity
Merge pull request #2071 from raydavis/raywip

CLC-2425 Instructor section nesting by Course Option
[CLC-3071] Textbooks: Improve UI
CLC-3207 Missing bCourses section links with unprefixed CCN strings
CLC-3197 Introduce and test the DelayedCacheCleaner
[CLC-3210] Textbook feed is not displayed in dev
Merge pull request #2073 from haroonrasheed333/CLC-3071

[CLC-3071] Textbooks: Improve UI
Merge pull request #2075 from haroonrasheed333/CLC-3210

[CLC-3210] Textbook feed is not displayed in dev
Merge pull request #2072 from raydavis/raywip

Looks good!
CLC-3188: LiveUpdates: Hit updated_feeds API earlier and more often

https://jira.media.berkeley.edu/jira/browse/CLC-3188

The UI now makes the updated feeds request at the given intervals after page load: 2s, 5s, 15s, and then every 60 seconds after that.
Merge pull request #2076 from chikoon/CLC-3188-hit-updated-feeds-more-often

CLC-3188: LiveUpdates: Hit updated_feeds API earlier and more often
CLC-3189 - LiveUpdates: Eliminate the "checking for new data" prompt

https://jira.media.berkeley.edu/jira/browse/CLC-3189

Eliminated the "checking for new data" prompt that used to appear when a user's dashboard was loading.

The message was considered to be "dishonest" since it didn't necessarily always get the new data because of server caching issues.
CLC-3187: LiveUpdates: Do warmup in a forced-cache-write mode (Part 2)

https://jira.media.berkeley.edu/jira/browse/CLC-3187

UserCacheWarmer now calls each model's get_feed_as_json method with the forced-cache-write parameter so that the cached json objects get warmed up, too.

Before this change, the data wasn't being updated when up_next was called from the UI.

Ammended: get_feed_as_json needed to pass the force_cache_write param through to the get_feed call so that the get_feed contents refresh.
Merge pull request #2079 from chikoon/CLC-3187-forced-cache-write-warmup

CLC-3187: LiveUpdates: Do warmup in a forced-cache-write mode (Part 2)