feat(launcher): allow multicapabilities to take array of promises

maybe "Capabilities can be a promise, which will be resolved before any driver set up. "

Since we don't guarantee that it runs after `beforeLaunch`.

e.g.

```
capabilities = q.delay(500).then(function() { return {} })
```
won't wait until beforeLaunch to run, it'll start as soon as the config file is loaded.