change from HashSet to ConcurrentHashMap for thread safety

otherwise, we can get into potential infinite loop inside plain HashSet/HashMap

10	RUNNABLE
	at java.util.HashMap.put(HashMap.java:473)
	at java.util.HashSet.add(HashSet.java:217)
	at com.netflix.governator.guice.InternalLifecycleModule.warmUpIsInDag(InternalLifecycleModule.java:175)
	at com.netflix.governator.guice.InternalLifecycleModule.warmUpIsInDag(InternalLifecycleModule.java:149)
	at com.netflix.governator.guice.InternalLifecycleModule.processInjectedObject(InternalLifecycleModule.java:110)
	at com.netflix.governator.guice.InternalLifecycleModule.access$000(InternalLifecycleModule.java:45)
	at com.netflix.governator.guice.InternalLifecycleModule$2$1.afterInjection(InternalLifecycleModule.java:88)
	at com.google.inject.internal.MembersInjectorImpl.notifyListeners(MembersInjectorImpl.java:97)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:95)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.servlet.ServletScopes$1$1.get(ServletScopes.java:88)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
	at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:89)
	at com.google.inject.multibindings.MapBinder$RealMapBinder$2.get(MapBinder.java:387)
	at com.google.inject.multibindings.MapBinder$RealMapBinder$2.get(MapBinder.java:383)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
 however Set interface does not give you important atomic operations like putIfAbsent() which usually is the main reason to use concurrent collection.