We should support initializing a `Promise` from a `Result`, resolving a `Resolver` with a `Result`, and converting a `Result` to a `PromiseResult`.