Use A+ spec compatible promises.
Remove progress events.
Merge pull request #3340 from brendandahl/chainable-promises2

Use A+ spec compatible promises.