fix(website): Add href to menu items.
feat(webdriver-manager): ignore ssl checks with --ignore_ssl option

Allow ability to ignore SSL checks when downloading webdriver binaries.
Usage: `webdriver-manager update --ignore_ssl`
chore(angular): upgrade angular to version 1.3.

This change updates Protractor's test application from 1.2.9 to 1.3.0-r0.

There is a significant behind-the-scenes change in the implementation of locating
elements and waiting for the page to be stable. If you are updating your application
to Angular 1.3, you may run into some changes you will need to make in your tests:

 - `by.binding` no longer allows using the surrounding `{{}}`. Previously, these
    were optional.
    Before: `var el = element(by.binding('{{foo}}'))`
    After: `var el = element(by.binding('foo'))`

 - Prefixes `ng_` and `x-ng-` are no longer allowed for models. Use `ng-model`.

 - `by.repeater` cannot find elements by row and column which are not children
   of the row. For example, if your template is
   `<div ng-repeat="foo in foos">{{foo.name}}</div>`
   Before: `var el = element(by.repeater('foo in foos').row(2).column('foo.name'))`
   After: You may either enclose `{{foo.name}}` in a child element or simply use:
   `var el = element(by.repeater('foo in foos').row(2))`
chore(testapp): add command line flag to testapp to switch angular version

The testapp may now be started with
`testapp/scripts/web-server.js --ngversion 1.2.9` to change the
version of Angular used in the app. Versions must be stored in
`testapp/lib/angular-v<version>`.

Closes #1258
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
docs(tutorial): fixed typo
chore(website): make code tags non-bindable

closes #1342
chore(website): Fix broken link.
feat(runner): Allow onCleanup to accept a file
chore(release): version bump and changelog for 1.3.0.
fix(locators): fix regression passing root element to locator scripts

Closes #1378