merge BaseConnection and Connection into Connection, make PubSubConnection inherit from Connection and issue commands as a regular connection until :start() is called