The connection to the underlying socket is initially created on demand.

The ConnectAsync() method in IGameConnection is the basic entry point for establishing all connections. The logic how this connection is established is hidden within the special implementation of IGameConnection

Issue #22