Allow custom callbacks for client requests

This will allow us to pass custom callbacks to client responses. They're called with arguments that are the result of the client's default callback.