fix(locators): fix regression passing root element to locator scripts

Closes #1378
chore(mocha): add a timeout for mocha tests
chore(release): version bump and changelist for 1.3.1
chore(eol): normalize all the line endings

add .gitattributes and set the default behavior, in case people do not have core.autocrlf set
docs(faq): fix closing parenthesis

(withLoginConf.js] should be (withLoginConf.js)
fix(runner): webdriver could get into lock when there is async promise
use the root element only to find the testability API, not scope searches

n 9a8f45a a change was introduced which made
Protractor's custom locators (by.binding, by.model, etc) use config.rootElement
as the root for all their searches. This meant that config.rootElement was used
both to specify how to get hold of Angular's injector as well as where to begin
searching for elements. This does not work for all cases, for example if a dialog
should be searched for elements but is a sibling, not a child, of ng-app.

This reverts that change, and uses document as the parent for all searches. This
is consistent with the behavior of the native locators by.id, by.css, and friends,
which do not scope their search based on config.rootElement.
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