Replace Being/End Receive patters with SocketAsynchEventArgs for reading from sockets.
Add some performance improvements spotted by profiling.