tests(routing): add a test for synchronization with slow routing
fix(tests): remove lingering ddescribe
feat(locators) Improve the map() function in element.all to resolve multiple promises

Resolve promises if there is an object that contains multiple promises.
Added index as a second argument to the map function callback.

Closes #392
fix(Protractor.prototype.get): resolve `baseUrl` before ignoring synchronization

Fixes issues where setting `ignoreSynchronization = true` ignores the value of `baseUrl` entirely.
feat(runner): add mocha options to config file

change lib/runner to allow setting mocha options from config.
chore(style): cleanup styling

Use consistent styling in project
chore(style): add missing semi-colons and styling

Add in missing semicolons. Simplify logic check. Add in use strict
chore(style): remove trailing whitespace
fix(runner): only run selenium with spec files

Only setup Selenium if there are actual spec files passed in
feat(cli): add option to show bin usage

Passing in `--help` will display the Protractor usage menu
refactor(cli): clean up print version
feat(runner): add a callback for when the tests are done

Add an onCleanUp callback to be able to hook into when all the tests
have been run.

Conflicts:
	referenceConf.js
refactor(cli): combine help and no arguments passed check

Only need one if statement when they both do the same thing
chore(runner): triple equals and semicolons
fix(tests): fix adding custom locators test to work on firefox
fix(pageload): add a wait during protractor.get() to solve unload issues

Some systems would not wait for the browser unload event to finish
before beginning the asynchronous script execution.

Closes #406. Closes #85.
docs(api.md): fixed typo and updated incorrect info

In Locator Strategies:
- Fixed typo

In WebElements:
- Corrected what 'findElements' should return
- Removed mention of isElementPresent

Closes #443
docs(api): regenerate docs api links
feat(element): allow chaining of element finders with element().element()...

Chaining calls to element will now build a scoped element finder. No webdriver
functions will be called until a method (such as getText) is called on the
final element. Example:

    var elem = element(by.id('outer')).element(by.css('inner'));
    browser.get('myPage');
    elem.click();

Closes #340.
docs(element): add in-code documentation for methods on element