It seems like we should reject() in cases where providers fail to return results -- that's what the code in master does.  If you want to make sure we still display all the other providers' results are still displayed, just change the `masterPromise.then()` to `masterPromise.always()` and pass failFast = false to doInParallel() (which you're alreayd doing implicitly).