Make client method responses asynchronous

JsonRpcMethod::invoke() no longer returns a Json::Value directly (and
similarly errors should no longer be reported by throwing an
exception). Instead, invoke() now takes a second parameter called
"response". The argument is a shared_ptr<Response>. The client should
hang on to that object until it's ready to send back a response.

The JsonRpcMethod::Response type provides two methods, sendResult()
and sendError() for sending back a response. Once a response has been
sent (whether a successful response or an error) the Response object
won't send another (an exception will be thrown if the client tries to
respond twice.)