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
Re-adding tests accidentally commented out in 1bd26af0a55c

3 tests in CapabilitiesComparatorTest were broken by recent changes,
but I also suspect they aren't running on ci regardless of this change...

I will fix the tests and add them to ci (if they aren't already) shortly.
Fix CapabilitiesComparator after 52197cf5d134d921809642db71da75b655e71229
(Or rather make CapabilitiesComparatorTest pass, preserving historical behavior.
Ultimate fix for CapabilitiesComparator would probably delete the whole thing)

Also separated
//java/server/test/org/openqa/selenium/remote/server:small-tests:run
that is now running continuously as part of "Small Tests" on CI.
Deleting what appears to be unused deps.
Separate commit so this is easy to revert if I'm wrong.
Adding checks for JS functions removed from IE11. Fixes issue 7780