Add base implementation of the loading cache service and bindings, update cache key location
This service binding allows for the definition of loading caches to be bound to the managing service and called through that service. In the future, better handling and retrieval may be created to help supplement this code, but they aren't needed for basic use cases.
Additionally, introduces a breaking change for the ParameterizedCacheKey, and was done as this key is being used across multiple services now, and different types of caches. To better manage this and keep it distinct from any one cache, it was moved to its own model.