Introduce ExtendedPromiseInterface

This interface can be used for useful shortcut and utility methods which are not part of the Promises/A specification.
Add new .done() method (part of the new ExtendedPromiseInterface)