Returns an object of type V given its key of type K.
If it is present in the cache, the cached instance will be returned, otherwise a new instance will be created using the 1-arg K constructor of V.