Test Runner Refactor + Simultaneous Test Run Support - supported by all "run types" (hosted, sauce, etc)

Refactored the test Runner system to be modular/plugin oriented and added in functionality to launch simultaneous testRunner instances.  Tested with saucelabs, chromeOnly, local selenium, and hosted selenium grid configurations successfully.

My goal is to allow for single-file selenium grid configurations as referenced in issue #111 and to create a modular basis for more test runner types and functionality in the future.

Prior to this change, the syntax for defining a capability was limited to:
```Javascript
  capabilities: {
    "browserName": "firefox",
    ...
  }
```
With this change, you can now do something like this:

```Javascript
  capabilities: [{
    "browserName": "firefox",
    "count": 5
  },
  {
    "browserName": "chrome",
    "count": 3
  }]
```
This would request 5 firefox and 3 chrome instances from your test runner.  This allows for more ease of use with hosted selenium grid solutions, saucelabs, etc.

To prevent breaking existing implementations, the original object syntax (eg. capabilities: {}) will continue to work.