[promise] Wrap promise init function in try...catch

This should be the last change before importing `ypromise` directly in the next release.

Promises should be rejected when throwing errors inside the initialization function. This is the behavior of native promises and it also prevents losing errors along the way.

Sorry for the late addition.