Added a cache mixin.

Borrowed from https://bitbucket.org/nextscreenlabs/django-viewclass-mixins/
Licenses are compatitable (both BSD-3).
Where's `patch_response_headers()` coming from?