fix(components): allow the creation of multiple instances of component factories

CacheRegister throws when registering the same cache twice. This PR adds two methods to CacheRegister to allow clients to get a cache if one has been already created. In addition, this change makes MockCacheRegister unnecessary.