Add support for virtual connections
Add an abstract implementation of the Connection interface that models abstract connections. Abstract connections are connections that don't have a physical connection counterpart. Instead they can be seen as conceptual or just 'abstract' connections.
Virtual connections are required for HTTP Binding and Connection Managers. When using HTTP clients will be using HTTP requests to a web server so no TCP connection is made to the xmpp server (this applies also when wildfire is hosting a web server). When using Connection Managers clients are connected to Connection Managers and Connection Managers use their own connections to the XMPP server to fowards packets. We can say that Connection Managers' connections are multiplexed.