docs(release): add a note to test against angular 1.2.x when releasing
feat(protractor): allow advanced features for ElementArrayFinder

changed ElementFinder as a subset of an ElementArrayFinder.

This enables actions on ElementArrayFinders, such as:
`element.all(by.css('.foo')).click()`

The function `filter` now returns an ElementArrayFinder, so you may also do:
`element.all(by.css('.foo')).filter(filterFn).click()`

or

`element.all(by.css('.foo')).filter(filterFn).last().click()`
fix(element): isPresent should not throw on chained finders

Now, `$('nonexistant').$('foo').isPresent()` will return false instead
of throwing an error. This change also adds tests that ensure
that catching errors from promises works as expected.
refactor(tests): move equivalency function to the elements spec file

It makes more sense there than in locators.
tests(promises): add a couple tests to ensure that promise resolution works

These tests ensure that `ElementFinder`, which extends promise, behaves
properly when being resolved before an action has been called on it.

These tests will be useful to have during updates of WebDriverJS.

See #1307
docs(referenceConf): clarify that rootElement is a CSS selector
feat(webdriver): update to WebDriverJS 2.43.5

Breaking Changes
WebDriverJS has introduced changes in the way that Promises are handled in version
2.43. See https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md
 - `webdriver.WebElement` has now been split into `webdriver.WebElementPromise`
   and `webdriver.WebElement` so that it does not resolve to itself. This change
   should be largely transparent to users.
 - `WebElement.toWireValue` has been removed.
feat(webdriver): bump WebDriver to version 2.43
chore(ci): update to the latest 2 browsers for CI testing
chore(frameworks): update the version of mocha

Now mocha 1.21 is passing with fixes from WebDriverJS

Closes #1109