Create IPromise interface.

This helps type coercion with custom promise types (such as IItemPromise).