Jbau/shoppingcart user middleware

@dianakhuang @adampalay 

I think this is a better way to fix https://edx-wiki.atlassian.net/browse/LMS-1222 than https://github.com/edx/edx-platform/pull/1345, though we might want both.  It removes database accesses from template rendering, and so removes any landmines with database transactions.  In the spirit of having completely "mindless" templates, this moves the database access out of the `navigation.html` template into middleware.

If there were a good views file to put the logic for figuring out when to display the shopping cart icon, that's where I would have put it.  But `navigation.html` is basically "called" by being included by `main.html`, so there are many view functions that render it.  Hence the need for middleware.

FYI: @symbolist