Returns a promise that fulfills with the value of the first input to
**fulfill**. Rejections are tolerated: they are collected rather than
propagated, so one failing source does not spoil the result.
Only if EVERY input rejects does the returned promise reject, with an
array of the reasons, positionally (entry `i` is `promises[i]`'s reason).
Contrast promise_race(3), which is settled by the first input to settle
either way -- a rejection there wins the race.
An element that is not a promise counts as already fulfilled with
itself. An empty array rejects: there is nothing that could ever
satisfy it.