Deferred: produce and consume standard thenables

A mere 41 bytes minified/gzipped... or so says Grunt.

I probably 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.
I don't understand what's going on here... could we implement the test with something simpler like [https://github.com/getify/native-promise-only](https://github.com/getify/native-promise-only)?