Promises/A+ 2.0 compliance and exception handling.

Any uncaught exceptions raised during execution of a `map` or
`onRejected` handler will now cause the resulting promise to become
`rejected` with the exception as the `reason`. This makes Pacta's
promises similar to Scala's Futures and Promises.