Extract subprocess management to a reusable module.
* Add more options to the Builder API (every common, settable capability should be covered).
* Require calling Builder.usingServer(url) to use a remote server. If this is not called, the
builder will attempt to create a client locally, throwing an error if it can't (e.g. for IE).
* Add browser specific constructors to simplify creating a client without the Builder.

Fixes issue 7593
Have the FirefoxDriver accept lower case proxy types (which is the format documented on the wiki)
Update to dossier 0.4.0
Native support for Firefox in the JS bindings.
Fix npm test command

Fixes issue 7774