If xhr.response errors, callback with error.

Fixes #1263. Previously, if d3.json was used to load invalid JSON, a SyntaxError would be thrown. Now an error is reported to the callback instead, in the same manner as if a network error occurred. This allows the caller to handle the invalid response, rather than throwing an asynchronous error.