Clean up the command disabling logic.•••- Read the disabled command list in ApplyDisabledCommands() instead
of storing it in a global which is only accessed on rehash.
- Write debug messages to the log when disabling commands.
- Use irc::spacesepstream instead of std::stringstream.
Avoid calling methods on NULL pointers wherever possible.•••The trick we use to allow this is undefined behaviour and is not
liked by LLVM. We should stop using it but it has the potential to
break to many things for a minor release.