Future proof interceptor argument signatures

The third argument to the request/response callbacks for an interceptor
was previously a reference to the current client. Now it's a hash, which
in turn contains the client. The raw client arguments are also available
on that hash.

As other properties are injected into the interceptor callbacks, they will
be added to this hash instead rather than using positional arguments.