More work on django-basec caching.

Removed fancy-cache -- not really what we need here.  Instead, we're now
using a custom `CacheMixin` decorator that allows us to define a
`get_cache_key()` static method on a view class, and then directly
manage invalidation.  fancy-cache's prefix stuff was just too complex,
especially with invalidation of objects that can exist under different
URLS -- e.g. /sf/Page_NAME, /sf/PAGE_name, /Page_name (custom hostname).
Ugh.