Reuse server buffer in copyServer2Client.
Reuse client buffer in copyClient2Server.
Use bufio.ReadNext in sendBodySplitIntoChunk.
Rename copyN to copyNWithBuf, make dst as first parameter.

Parameter position switching is to keep consistency with the signature
of copy.
Util func: copyN with bufio.Reader as src.
Use copyN in sendBodyWithContLen.
Use copyN in sendBodyChunked.