Refactor Command hierarchy

Added Command child class: ConnectionCommand
Used for any command that required establishing a client socket.
Update CommandFactory to use Connection objects
Refactor Command hierarchy to similar interfaces
Refactor Connections to have timers
Implement InboundBootstrapKeepAlive
Implement InboundBootstrapUnregister