Improved the Promise test

In order to get the Promise test to work, I needed to implement
asynchronous test result writing. To do this, test functions may now,
instead of returning true/false, instead at some point call
asyncTestPassed(), which is a function provided by the testing
environment that registers the test as passed regardless of execution
order. build.js has been updated to provide such a function, as has the
node.js test runner.

The historical results have not been re-verified using this updated test
yet.
Added Promise.all and Promise.race tests

Again, the results for these are naively copied from the main Promise
test.
Fixed a bug in the Node test script