fix(test): fix file paths for Windows platform
fix(test): allow to run 'npm start' or 'npm test' from windows too
feat(webdriver-manager): ignore ssl checks if npm strict-ssl setting is false

Allow ability to ignore SSL checks when downloading selenium and webdriver if the npm `strict-ssl` config setting is false
feat(webdriver-manager): use CLI options insead of reading from npm settings
feat(package.json): remove unused npmconf package
feat(webdriver-manager): capitalising the first sentence words to be consistent with other CLI option descriptions
Merge branch 'features/ignore-ssl-cert-in-webdriver-manager-update'

* features/ignore-ssl-cert-in-webdriver-manager-update:
  feat(webdriver-manager): capitalising the first sentence words to be consistent with other CLI option descriptions
  feat(package.json): remove unused npmconf package
  feat(webdriver-manager): use CLI options insead of reading from npm settings
  feat(webdriver-manager): ignore ssl checks if npm strict-ssl setting is false
Merge branch 'fix/improve-npm-test-compatibility-on-windows'

* fix/improve-npm-test-compatibility-on-windows:
  fix(test): allow to run 'npm start' or 'npm test' from windows too
  fix(test): fix file paths for Windows platform
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