Utility class for caching data
Very useful in the case where retrieving or building data sets is expensive, and the data doesn't change during the lifetime of the request. This class serves as a hash table where any data class can store and retrieve cached data.