Reinstate caching of the request context

This PR reinstates the request context cache that was removed as part of:

https://github.com/edx/edx-platform/pull/6189

From Chris Dodge: "Rendering pages is causing refetching the template context for any template sub-component on the page. In my particular case, any site that is using the shopping cart is causing 100's of DB roundtrips to inspect the shoppingcart status (to determine if to render the button on the upper right of the page)."

Reviewers: @cdodge @cpennington @cahrens 
FYI: @adampalay @waheedahmed @ormsbee