Add complete tests for Map and Set, fixing bugs along the way.
Add some Promise tests.
Rewrite shim testing initialization and avoid a global flag.