Update sauce-connect-launcher

Fixes #179.
Enhance object interface to allow closure per main suite

Now, when a function is passed to the object interface, it will
be executed once for each environment, which ensures that a clean
closure is created for each environment when running functional
tests in the test runner.
Add code coverage to runner code
Update Istanbul to latest
Exit process with correct exit code if Sauce tunnel fails
Fix client code coverage data lost during 2.0 self-test
Add mechanism for detecting current execution mode
Improve error logging output
Update chai to fix missing stack traces
Fix boolean argument passing to ClientSuite
Fix bad regular expression preventing loading of about:blank
Release script
Perform releases of master & geezer simultaneously
Updating metadata for 1.7.0
Updating source version to 1.8.0-pre
Add `grep` cli arg to filter tests

Filters tests by test id, which has the format

	[[[...]parent_name - ]parent_name - ]test_name

The grep string is converted to a JS RegExp and used to filter each test
ID before the test is added to its suite. After tests have been
processed, a suite is only added ot its parent suite if the suite
contains at least one test.
Comment

[ci skip]
Add `listTests` command

List registered tests without running anything

[ci skip]
Add `grep` and `listTests` selftests

- Improve testability of `listTests`
- Expose `_grepRegex` to improve testability of `grep`
- Don't differentiate between unit and functional tests when listing
  tests
- Update `object` lifecycle tests so that the test suite is properly
  registered with the test runner (it needed a dummy test or grep would
  filter the suite)

[ci skip]