Clientside detailed error reporting

Adds response and request objects and body to the error object
returned by the client whenever an error occurs during the
execution of Client.prototype.methodCall, AFTER a response has
been received from the RPC server.

The extra properties are added non-enumerable, so that using
(implicit) .toString() on the error (as with console.log)
implementations do not attempt to stringify massive amounts of
data.