asynctypes-685526: Test functions don't need options

Tests can use the options object via helpers (if we expose it there)
which make writing test adaptors for firefox much easier.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
asynctypes-685526: s/Q/Promise/g

So it's called Promise in Firefox, and this makes things more obvious.

The original reason for calling it Q was to link in with
https://github.com/kriskowal/q/blob/master/q.js but we're not that, and
not even a subset due to the sync/async non-compliance with Promises/A+

Signed-off-by: Joe Walker <jwalker@mozilla.com>
asynctypes-685526: Allow global test config

Previously each test was responsible for setting up everything. Now we
allow them to assume that the test suite will setup 'helpers' and
'mockCommands'.

This allows us to delete a ton of duplicated code, and makes it simpler
to create a test runner inside firefox.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
asynctypes-685526: Protect examiner.suites

We were previously exposing examiner.suites which is really an internal
data structure, which was at best confusing since you needed to do
something special to add to the list of suites. Now there are helpers.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
asynctypes-685526: Various test tidy-ups

helpers gains a log utility to help messages go to the right place, and
syncs with the firefox version of the same file.
testExec gets some minor formatting fixes.
Don't trap failing errors in a couple of places in cli.js.
Documentation: There are now only 2 test suites - no more selenium.
Fixed typo in docs for mockCommands/setup

Signed-off-by: Joe Walker <jwalker@mozilla.com>