Pipelining many requests

Send a series of requests to the server, back to back, and
receive a response for each request sent. The sending and
receiving will be overlapped if possible, to improve concurrency
and reduce latency.

Send a series of requests to the server, back to back, and
receive a response for each request sent (the responses may be
empty). The sending and receiving will be overlapped if possible,
to improve concurrency and reduce latency.

Send a series of requests to the server, back to back, and
receive (but do not decode) a response for each request sent. The
sending and receiving will be overlapped if possible, to improve
concurrency and reduce latency.