Cache storage abstracts away the storage aspects of a cache - associating
an object with a key, retrieval and removal via the key. It is actually a
small subset of the Map interface.
The implementations can be coded in a non-threadsafe manner as the natural
user of the cache storage, TemplateCache does the necessary
synchronization.