make `Promise.all(promises)` faster in the non-deprecated case

this at the cost of the speed of `Promise.all(…promises)`, which is deprecated.
the new version avoids mucking around with `arguments` in the
non-deprecated case, avoiding a variety of deoptimisations by
runtimes. it delegates to a separate `variadicAll` function in the
deprecated case, which does incur the cost of constructing an
`arguments` object and slicing it (twice!), but at least that's outside
the fast path now.