refactor(logger): add a logger to handle all printing and writing to stdout
feat(troubleshoot): Add more information when the --troubleshoot flag is used

Improve error messages and add debug info when
 - the configuration file cannot be parsed
 - a webdriver session cannot be started
 - more than one element is found using `element`

Unify format used for warnings and errors.
refactor(localdp): improve error messages when selenium binaries are missing

See #1017
style(logger): fix missing semicolons

Closes #1598
docs(control-flow): add a note about how mocha adapts to control flow

Closes #1427
refactor(website): remove warnings for unused tags and update markdown generator

Change from gulp-marked (deprecated) to gulp-markdown, which is less noisy.

Remove warnings for unprocessed but legitimate tags (@override and friends)
docs(protractor): add examples for methods that were missing them

Closes #1498
tests(element): show use of web element in executeScript call
fix(jasmine): fix errors when iit was used

Errors were due to Jasmine not calling reportSpecStarting when iit
was used, but calling reportSpecResults.

Closes #1602
chore(release): version bump and changelog for 1.5.0
fix(waitforangular): improve error messages when waitForAngular fails

Previously, caught errors were being interpreted as an empty object, causing
lots of errors such as
'Uncaught exception: Error while waiting for Protractor to sync with the page: {}'
Now the error message will be displayed, and a more useful custom message
will be thrown if the variable 'angular' is not present or the root element
is not part of the ng-app.

See #1474
docs(locators): add info on interpolation markers for by.binding

See #1480
feat(wddebugger): enable repl for browser.pause
feat(wddebugger): enable autocomplete for repl