Don't show coverage report when there's no data

Fixes #127
Provide real error messaging for functional test failures

Fixes #178.
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
WIP
[WIP] Run feature file with Cucumber listener
[WIP] Basic unit and functional tests work