Extracted CommandManager from TcpCommandManager. Added CommandGroups to create consistency in naming. Controllers now implement ICommandProvider and get registered with the CommandManager.