Deferred: produce and consume standard thenables

A mere 41 bytes minified/gzipped... or so says Grunt.

I properly have style issues so thanks for pointing them out (or fix them in the relevant branch ;)).

Test coverage is probably not good enough but .when() is tested extensively at least.
It wouldn't make a difference as far as .catch() is concerned (the reason why the promise is rejected doesn't matter). The fact the returned promise is rejected if a callback throws an exception is covered in the tests for .then().