A client represents how a request body is formed and sent into
a backend. The client is protocol agnostic, a Client may
communicate with a backend over gRPC, JSON-RPC, HTTP-REST, etc.
http::Response’s are used in order to maintain a
common data format compatible with a wide variety of backends.
an http response is easily derived from a grpc, jsonrpc or rest api.
a companion to the Query trait, except for streaming calls.
Not every query combinator/extension will apply to both
steams and one-off calls (how do you ‘page’ a streaming api?),
so these traits are separated.