Q.all() now accepts promise-like objects

Not sure why we didn't do it in the prev pull request.