Reject pending message deferreds on Photoshop error

If Photoshop replies to a request with an error message that has no body then the deferred for that request is never rejected. This is because the deferred is only rejected if `err.body && err.id` is truthy. But when the message body is empty then `err.body === ""`, and so `err.body && err.id === err.body === ""`. The correct thing to do is, of course, to reject the deferred regardless of whether or not there is a message body. 

And, besides the superfluous and broken test for `err.body`, the `err.id` test is also broken because if `err.id === 0` then the test will also fail incorrectly. The pull request removes both of these broken tests in favor of a single test for whether `err.id` is an own-property of the set of deferreds and, if so, rejects the corresponding deferred.

Partially addresses [3787709](https://watsonexp.corp.adobe.com//#bug=3787709).
I have been following every issue and pull request here for last few months and… you guys should seriously film a show or something :smiley: 

![](https://upx.cz/nn7l5vzulpgvw2yr3lksofa9zukxdqs0ai9ud3k5)