Reorganize tests for better separation
Merge branch 'master' into extended-promise
Rework done() implementation

done() now only wraps the UnhandledRejectionException if the rejection value isn't an exception.
Also, more tests.