Rework BaseCommandPlugin to be daggery.

Getting hold of a CommandController is annoying and fiddly,
so add a CommandHelper class to hide that away from plugins.

Allow registering of a command given just its class/info.

Change-Id: Ia208db1f23e3356d83a87ff2372e4f7aa49b24cc
Reviewed-on: http://gerrit.dmdirc.com/2854
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager