Added RQ-based async cache file backend

I use a Redis-based queue (rq/django_rq) to generate the cache files. This patch adds a cache file backend that uses RQ for background processing.

The `BaseAsync` base class is also an attempt to make it easier to support other worker queues or even completely different means of processing asynchronously.

Please adjusted as needed and merge if you see fit!