[Feature] Cross-browser testing through Sauce Labs integration

This PR adds support for a really cool feature - the ability to do cross-browser testing by integrating with SauceLabs and their collection of hosted browsers.

* New: added SauceConnect.jar as a dependency to download
* New: web browser support now lives in a pluggable architecture
* New: adapter for running selenium webdriver locally (for backwards compatibility)
* New: adapter for running selenium webdriver at SauceLabs
* New: HTTP Basic Auth is no longer implicit, now has a usingBrowser() action
* Fix: all usingBrowser()->gotoPage() URLs must now be absolute (no more trying to convert relative into absolute)
* Fix: -D switch now works when used multiple times on the command line
* New: better reporting of when we start and stop web browsers
* New: better reporting of fatal exceptions that happen outside of the test phases
* New: request arbitrary browser capabilities via -D webbrowser.*
* Fix: not every browser has a valid DOM when first opened

There's also a (currently unimplemented) skeleton for a SauceLabs prose module. It isn't needed for this initial integration.  I'm planning to complete it as part of the v1.5 development work.