feat(launcher): Add support for maxSession

  - add support for maxSession and capability-specific specs
  - cleaned up launcher (refactored out taskScheduler.js)
  - (breaking change) changed the config to shard test files; also sharding is specific to capabilities now
    - Before: config.splitTestsBetweenCapabilities
    - Now: config.capabilities.shardTestFiles or config.multiCapabilities[index].shardTestFiles