Use a pool of buffers for incoming messages

This reduces allocations and gc pressure.
Point out them performance optimizations.