docs(api): tie links on old api.md doc to version 1.1.1

This will keep the line numbers sane while changes to master occur.

Closes #1403
feat(launcher): add beforeTest and afterTest
chore(debugging): fix a couple issues with running the failure specs
feat(protractor): wrap negative indices for ElementArrayFinder.get(i)

Closes #1213
docs(browser-setup): fix PhantomJS launch issue on Windows
feat(debugging): use custom messages when executing scripts to improve stack traces

Now, instead of asynchronous events during executeScript all being described as
`WebDriver.executeScript`, they have their own custom messages. The schedule
shown when debugging will be more informative, as in the example below:

```
-- WebDriver control flow schedule
 |- waiting for debugger to attach
 |---    at null.<anonymous> (/Users/ralphj/protractor/debugging/failure_spec.js:37:13)
 |- WebDriver.navigate().to(data:text/html,<html></html>)
 |---    at null.<anonymous> (/Users/ralphj/protractor/debugging/failure_spec.js:38:13)
 |- Protractor.get(http://localhost:8081/index.html#/form) - reset url
 |---    at null.<anonymous> (/Users/ralphj/protractor/debugging/failure_spec.js:38:13)
 |- Timed out waiting for page to load after 10000ms
 |---    at null.<anonymous> (/Users/ralphj/protractor/debugging/failure_spec.js:38:13)
 |- Protractor.get(http://localhost:8081/index.html#/form) - test for angular
 |---    at null.<anonymous> (/Users/ralphj/protractor/debugging/failure_spec.js:38:13)
 |- Protractor.get(http://localhost:8081/index.html#/form) - add mock module
 |---    at null.<anonymous> (/Users/ralphj/protractor/debugging/failure_spec.js:38:13)
 |- Protractor.get(http://localhost:8081/index.html#/form) - resume bootstrap
 |---    at null.<anonymous> (/Users/ralphj/protractor/debugging/failure_spec.js:38:13)
 |- Protractor.waitForAngular()
 |---    at null.<anonymous> (/Users/ralphj/protractor/debugging/failure_spec.js:42:21)
```
fix(protractor): make stacktrace more readable

Closes #1407
fix(launcher): ignore asynchronous code in afterLaunch

See #1413
docs(phantomjs): fix broken suggested configuration for PhantomJS and add a warning note
fix(launcher): allow afterLaunch to run async scripts
feat(runner): add a new method of getting browser drivers - directConnect

directConnect as an option on the configuration will replace chromeOnly.
Now, WebDriverJS allows Firefox to be used directly as well, so directConnect
will work for Chrome and Firefox, and throw an error if another browser is used.

This change deprecates but does not remove the chromeOnly option.
docs(browser-setup): update instructions for running protractor on appium