Signal error source in more places

.error() now catches:

- Rejections originating from Promise.reject

- Rejections originating from thenables using
the reject callback

- Rejections originating from promisified callbacks
which use the errback argument

- Rejections originating from new Promise constructor
where the reject callback is called explicitly

- Rejections originating from PromiseResolver where
.reject() is used explicitly
update assumption in test