feat(runner): addConcurrency

(runner): addConcurrency

add capability to run multiple specs/capabilities at the same time.

This is my first stab at contributing to a larger project so i was hoping i could get a little guidance because what I'm attempting is ambitious (as far as i can see) and I'm getting a little worried about the amount of code i seem to need to modify.

The basic idea is to take the original config that is passed in and reduce it down to a queue of simpler configs.

e.g.

{
  specs: ['spec/first_spec.js', 'spec/seccond_spec.js'],
  multiCapabilities: [{ 'browserName': 'chrome' }, { 'browserName': 'firefox' }],
  concurrency: 2
}
would essentially become

Spec 1

{
  specs: ['spec/first_spec.js'],
  capabilities: {'browserName': 'chrome'}
}
Spec 2

{
  specs: ['spec/first_spec.js'],
  capabilities: {'browserName': 'firefox'}
}
Spec 3

{
  specs: ['spec/seccond_spec.js'],
  capabilities: {'browserName': 'chrome'}
}
Spec 4

{
  specs: ['spec/seccond_spec.js'],
  capabilities: {'browserName': 'firefox'}
}

these are then handed of to the runFromLauncher as usual.