Updated footnote for octal/binary literals

TC39 recently decided to allow Number("0b1") to evaluate to 1, thus
making Chrome's behaviour correct and Firefox's incorrect.
Merge pull request #259 from webbedspace/octal

Updated footnote for octal/binary literals
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
Updated Symbol test to also check defineProperty

This updates the Symbol test to check that symbols can be used as keys
in Object.defineProperty arguments, not just in bare assignments. This
doesn't change any of the test's historical results, though.
Check for ES5 Object methods before using them

This updates the Symbol and Object#__proto__ tests so that ES5 methods
are either not used, or checked for existence beforehand.

Note that Object#__proto__ still requires
Object.getOwnPropertyDescriptor outright, simply because it's impossible
to verify that it is indeed an accessor property on Object.prototype
(instead of just special syntax) without it.
Added 2 extra let tests

These tests check for the temporal dead zone, and correct for-loop
iteration bindings. They are distinct from the basic let-test, as they
represent more advanced or nuanced functionality.
Altered the TDZ test to include const

Both const and let are subject to the temporal dead zone.
Fixed a small bug

Also updated IE11 support for for-loop iteration scope.
Const test now checks that assignment is an error

Assigning to a const should be a syntax error. This commit does not
update the test results to match this stricter test, yet.

This also fixes tabs introduced in previous commits.
Updating const results

Almost everything fails this updated test by treating const reassignment
as a silent failure instead of a syntax error.
Updated TDZ test results

Also fixed a bug in the Node test script.
Fixed Traceur result for the let-for test

Also made the test's code less wide.
Added explanatory notes about let/const support
Added an anti-hoisting check to the const test

I was previously hesitant to include this, but since most platforms'
const support is invalidated already by their lack of error-throwing,
adding this check doesn't disturb the results at all.
Tightened the arrow function test

This extends the arrow function test to include multiple parameters,
and adds a separate test for lexical "this" (which Chrome 37+ currently
fails).

This does not include the following "pedantic" checks:
* Lexical "arguments"
* No line terminator between parameters and =>
* Absence of "prototype" property, and empty "name" property
Decided to merge the arrow tests back into one

I've changed my mind about having two tests for arrows and lexical this.
Now they're back in the same test, as per the former arrow test pullreq.
(In this case, Chrome 37+ is now failing the test, but the V8 team
[openly admits](http://code.google.com/p/v8/issues/detail?id=2700) that
their arrows aren't production-ready yet.)

Firefox's non-conformance regarding pedantic implementation details is
now noted in footnotes.

I've also converted the test code to a comment string, as per the
others.
Fixed a few Firefox footnotes and results.
Corrected some iOS 8 results. Fixes #253.