Promise updates

- Return an Array when an Array is given to Promise.all
- Update abort implementaiton (still broken)
- Propagate progress updates
- Add a `finally` method (like `always` in Dojo 1 Promises)