extract CachingSupplierRegistry from InjectorBackedRegistry

This PR extracts a CachingSupplierRegistry from InjectorBackedRegistry. 

Most code for SpringBackedRegistry was copy-pasted from InjectorBackedRegistry and this refactoring removes the duplicate code and adds tests for CachingSupplierRegistry.

There is also a sample CachingSupplierRegistryTestImpl in the test directory which is used for testing in CachingSupplierRegistrySpec.