Features/advanced promises

Soem advanced (compatible) changes to promises.

* then() now supports unsafe mode, so no try/catch around callbacks
* done() can now be used as final call in then()-chain to throw remaining exceptions and uncatched rejects (second one only in debug mode)