fix(ElementFinder): ElementFinder should allow null as success handler.
Passes the value to the next in the chain.
tests(protractor): advanced features for ElementArrayFinder
chore(website) Upgrade dgeni
feat(dgeni): Add test file for tag fixer unit test.
feat(config): Option to exclude test for specific capability

Add the option to exclude spec files for a specific capability.
This way you can ignore spec files for one capability only.
For example if the test is known to fail in the capability.

Closes #1230
feat(runner/frameworks): Change interface contract of the protractor runner instance so that it returns a promise instead of calling a callback function
fix(elementexplorer): elementexplorer hangs when returning ElementFinder
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)
```