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.
Yeah, something about returning a composite initialization feels slightly off to me sometimes, if you disagree ill gladly change it back (i definetly agree that we should be consistent across the codebase)