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
chore(testapp): change the default port from 8000 to 8081

This prevents conflicts with the default port for the angular.js application.

Closes #887