Include NotEarlyError when required
Error messages that match negative attribute are valid
Proper check for done in bin/run.js
Fix scenario expansion with onlyStrict flag
Support for $DONE (async tests).

Implementation details:
* All tests are now expected to call $DONE at some point. Tests
  without $DONE present anywhere in the test file will have it
  appended for them to the bottom of the test.
* $LOG has been added to the default test262 environment.
* Test results can be reported via the log. Console runner
  implements $ERROR and $DONE as calls to $LOG. The harness
  will now look inside the log for test results. This mechanism
  is used by the console harness to report errors from inside
  promise callbacks.