Defines a chained cache implementation for combining multiple cache backends.
Can be used to combine two or more backends together to behave as if they were a single backend.
For example a slower, persistent storage engine could be combined with a faster, volatile storage engine. When retrieving items from cache, they will be fetched from the volatile backend first, only falling back to the persistent backend if an item is not available. An item not present in the volatile backend but found in