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: 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: 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>
asynctypes-685526: Rewind - rebase

Having tests be 'option' free was good in that it felt simple, but in reality
it just moved the complexity elsewhere. In particular we don't want to hamper
Firefix testing with the setup demands of the test suite here. So we're putting
options back in, with the goal of having mock command be setup by the things
that need them, and helpers needing no setup at all.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
asynctypes-685526: Make helpers be setup free

Step 2 in the process of making helpers be setup free. Previously we made
mock commands setup be local, now we remove setup from helpers, which means
that each test is responsible for it's own setup, and the setup costs are
in general minimized.

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