Properly separate socket connection from abstract connection.

* Remove socket creation from AbstractConnection.
* Add AbstractSocketConnection and move base socket connection functionality there.
* Connection\Connection and Connection\Feedback extend AbstractSocketConnection.