Add 'finally' method to Promises

It behaves essentially like `always(fn)`, but will resolve or reject the resultant promise based on the initial resolution or rejection.  Implements [18384](https://bugs.dojotoolkit.org/ticket/18384).