Split middleware into two to accommodate Django's ordering issues

Django calls middlewares top-down during a request and stops at the
first one that handles the request. In the response phase, *all*
middlewares are called. So we need to *mark* the request after
FetchFromCacheMiddleware has run, giving it a chance to return the
cached content (then our mark will never be set), and we need to check
if we should minify before UpdateCacheMiddleware runs, so we can minify
the response before caching.
Fix middleware and illustrate middleware order
Merge pull request #64 from moeffju/feature/split-middleware

Split middleware into two parts to work around Django’s ordering issues