New cache API to avoid connection exhaustion.

Provide a dict of caches to avoid creating multiple instances of the caches configured in CACHES.

Still needs tests and some more docs.