feat(config): add option to exclude specs based on file patterns

The config now accepts `exclude`, an array of patterns to exclude.
style(License): update copyright year range
refactor(waitForAngular): improve error messages when timeouts occur
fix(timeouts): fix an obscure cause of firefox timeouts

Fixes #493
chore(release): version 0.18.0 changelog and version bump
feat(runner): add adapter for cucumber.js

Conflicts:
	lib/runner.js
Revert "feat(runner): add adapter for cucumber.js"

This reverts commit 88c339fc1d392717a0a5b8265806934b40158c5f.

Reverting for a clean release and to avoid force pushing.
fix(cli): specs was being processed as a string, not a list

Fixes #495
chore(release): version and changelog for 0.18.1
Revert "Revert "feat(runner): add adapter for cucumber.js""

This reverts commit 21e52a9faf0c2876146d90871eb377b1912e2e96.
fix(cli): convert capabilities arguments to dot-notation for WebDriver compatibility
refactor(locators): moves scope in locators to last argument

scope defaults to document, and is an optional argument so now be moved to the
end. Came up from debugging and trying to use
window.clientSideScripts.findInputs('username'); which failed. Refactored to
match original intent.

BREAKING CHANGE: anything relying on clientsidescripts should no longer pass
    element scope as first argument.

    Before:

    window.clientSideScripts.findInputs(document, 'username');

    After:

    window.clientSideScripts.findInputs(document, 'username');

    Also, any custom locators using addLocator will now break since the
    arguments order has chnaged. To migrate the code follow the example below:

    Before:

    var findMenuItem = function() {
      var domScope = arguments[0];
      var myArg = arguments[1];
      // balh blah blah
    };
    by.addLocator('menuItem', findMenuItem);

    After:

    var findMenuItem = function() {
      var myArg = arguments[0];
      var domScope = arguments[1];
      // balh blah blah
    };
    by.addLocator('menuItem', findMenuItem);

Closes #497
docs(debugging): Add note about limiting scope when using clientSideScripts
fix(webdriver-manager): upcase in IE download url

The url for the Win32 version of the IEDriverServer is apparently case
sensitive: _win32_ vs _Win32_
feat(locators): Added a By.cssContainingText locator.

This new locator find elements by css selector and inner text in response to the lack of ':contains' selector.

Example: By.cssContainingText('ul .pet', 'Dog') will find all ul children with class 'pet' containing the text 'Dog'.