Prevent wrapped function replacement in wd

Use a local reference to wrapped functions in PromisedWebDriver to prevent
the original function from being replaced during context updates.

Fixes #126
Update chai dependency to 1.9.0

Fixes #84
Add a TeamCity reporter

A new `teamcity` reporter has been added that generates
TeamCity-compatible test result output.

Closes #125
Release 1.4.0
Update to version 1.5.0-pre
Make the config path relative to baseUrl

Fixes #139
Use dojo/lang.hitch instead of Function#bind

This is because PhantomJS still does not support Function#bind
and people are requesting out-of-box support for it.
Fix lcov test failures
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