fix(taskScheduler) Do not run other browsers then Chrome when ChromeOnly is true

Previously when ChromeOnly was true it would report running other browsers as well.
Stating the spec was run and successful using the ChromeDriver directly.
They are not executed, so we shouldn't report them as executed.

Closes: #1364
chore(config): Don't store webdriver versions in package.json

This causes issues with some third party npm registries like Artifactory, and in
any case it seems strange to store these in the package metadata
tests(locators): add test using by.cssContainingText on elements with text-transform style applied
fix(locators): by.cssContainingText now operates on pre-transformed text

Previously, the implementation depended on the browser. Now, it will always
operate on the text before text-transform is applied. Closes #1217
docs(contributing): clarify the questions on github issues policy
feat(protractor): add clone methods for ElementFinder and ElementArrayFinder
chore(tests): remove a stray ddescribe

Closes #1402
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
chore(driverProviders): fix an unused import