Wrapped async Socket.Disconnect

With wrapping the Socket.BeginDisconnect and Socket.EndDisconnect it is actual possible to disconnect a running socket connection, and also a reconnect is possible.

Issue #22