Resolve the issue with the default scope being overriden

The default's scope load() was executing after the scope was already filled out with preferences.

Also, re-work adding to scope using explicit shadow entry state tracking (instead of promises).

cc: @redmunds