feat(runner/launcher): major runner updates to allow multiple capabilities

Adding simultaneous runner capability (grid-style), refactoring launch/runner init system,
and abstracting out configParser module.
refactor(launcher): some launcher clean-ups and refactors

Simplify the ConfigParser and remove the config map for now.
Add unit tests for the ConfigParser and runner, and an integration test for driverProviders.
Make sure the promises returned by the runner all chain nicely.
Make sure the exit code for the entire launcher process is correct.
Change the config so that multiConfig set must be explicit - this prevents weird
issues from merging objects into arrays.
chore(sauce): get sauceLabs working after the runner refactor
style(lib): style fixes, mostly adding semicolons
test(multicapabilities): add tests which run a config with multiCapabilities
chore(travis): run a multiCapabilities test on Travis, which will test firefox and chrome