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

As we discussed offline - we're turning this into instead adding `getCapabilities`, which can be a function which returns a promise.