Make progress propagation symmetric with resolve and reject.
Merge pull request #111 from Twisol/progress-promise

Factor progress handling into another internal promise object