Implemented Promise::done().

See #83.

TODO: Unit tests.
Reworked Promise::always() to eliminate unintended side-effects.

See #84

TODO: Unit tests.