Added a cache mixin.

Borrowed from https://bitbucket.org/nextscreenlabs/django-viewclass-mixins/
Licenses are compatitable (both BSD-3).