Modify command execution process

Currently, commands are executed using a callback function that is specific to each command. The function requires an output parameter, which is an ISendMessage instance. This is not ideal in case we have commands that are not sent to the IRC server but only change UI elements.
This commit changes the command callbacks to be Actions, which means they do not require an output parameter. This way, commands are fully executed in their callback and the CommandExecutor does not return any values.

ref #35