The InitialStateContainer is a lookaside table used by a ComponentTree to create initial states
for Components. The idea is that the onCreateInitialState result for each component will be
cached and stored here so that we can guarantee it's not called multiple times on multiple
threads. We keep the initial states cached as long as there is a layout happening for the
ComponentTree. As soon as we detect that all in-flights layout have terminated we can clean up
the initial states cache.