Check that a cancel function exists before calling it on a promise

Fixes #151.
Improve pass/fail indication in grunt output

Intern's grunt task now considers additional types of pass/fail message
when classifying task output. It also considers individual lines rather
than marking entire chunks of output.
Add "waitAfterComplete" option to remote runner

Setting waitAfterComplete to true in the test config file or from the
command line will cause intern to wait for the user to kill the test
browser when tests are run on a local Selenium server. It has no effect
when running tests on Sauce Labs.

Resolves #144
Rename `waitAfterComplete` option

`waitAfterComplete` is renamed to `leaveRemoteOpen` and is now command
line-only.

References #144
Forcibly close open sockets when closing the proxy

When `close` is called on the proxy, any sockets remaining open are
forcibly closed, allowing the proxy server to close.
Cleanup

References #144
Use `slice` not `substring`
Release 1.5.0
Update version to 1.6.0-pre

[ci skip]
Update copyright years

[ci skip]
Update README to reflect some of the New Hotness

[ci skip]
Update WD.js dependency to 0.2.11
Update sauce-connect-launcher dependency to 0.3.1
Update Selenium and browser versions
Stop modifying reference to `self` when switching to element method

Fixes #161.
Make sure WebDriver reporter emits error with older IE.
Allow arbitrary arguments to be passed throughout the test system

This allows arguments on the command-line to be passed to the
client.

Includes updates to Travis-CI self-testing to test this feature
as well as ensure that client.js on Node.js is being executed
during self-test.

Refs #128, closes #137.
Fix Grunt task discarding existing environment variables

Fixes #136, #160.
Expose configuration via `intern.config`

Fixes #128, closes #133.
Expose args on a public interface

End-users shouldn't ever access any lib modules.

Refs #128, refs #137.