Fix all the things

GetOrCreate now automatically adds the default value or the retrieved
value into the internal cache.
Also I made a dumb mistake in the InitializeAsync unit test