Proper unhandled error handling

Not sure why I thought a new error object for every promise would work, if it isn’t the same object how can I know if it is handled in any part of the tree/chain or not?

If a PromiseKit.Error is passed back into a reject we “unconsume” it since in such circumstances the Error has been manually reinserted into the chain and should be allowed to be marked as unhandled again.
voidify()

When you want a Void promise, but you have a T promise. It can be tedious to do a then{} just to transform. This function returns a new Void promise, but zalgo’d sine they is no callbacks so it is more efficient.