Avoid unnecessarily allocating readBufs for every row

In 7b56638b9451914e65985950a0d6c0c3833e96e9 I removed a completely
unnecessary allocation from recvMessage, but there was another
allocation done on every call.  Allow callers of recv1 to supply their
own readBuf where repeated allocations might be an issue, and implement
it for the "rows" object (where it's been proven to be one).