Propagate promise rejections so we show the fallback.

-Adds rejection support to Promise.All.
-Makes promise.then() callback optional.

Fixes: #3138

I'm also working on a subsequent PR that will hopefully simplify things with better promises.