Allow user-supplied buffer for MCRequest.Receive

This actually makes a considerable difference where it's usable.

BenchmarkReceiveRequest       305 ns/op  134.13 MB/s  32 B/op  1 allocs/op
BenchmarkReceiveRequestNoBuf  460 ns/op   88.95 MB/s  64 B/op  2 allocs/op