Add a weak NSMapTable-based memory cache. This allows the cache to reference previously cached object that are still alive and reuse them instead of redownloading them or pulling them out of the disk cache. This is faster and uses less memory.