Redesing I/O handling in Descriptor to use std::function template and update code depending on it.
Add getters and setters to Descriptor.
Add getters and setters to Connection.
Implement connection establishing in TcpConnection.