Performance optimizations and memory management

Added some benchmarks to secure channel and played around with improving its performance, also started using a sync.Pool for message buffers.
But from earlier, making the buffer that small does add a significant overhead, we have to add another layer to manage keeping the blocks together, and one on the other side to manage splitting...