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.
while it's computationally intractable for the adversary to guess the challenge, if the adversary happens to have a small set of of "possible challenges", they can attempt to this signature. The signature should probably be sent encrypted as well.