Make parseForCommands use the command's return value

After refactoring out all these functions, parseForCommands was sort of
blindly returning true or false (that determines whether something is
worked upon as a command or written to all users) based on its own
matching.

Now it returns false or the matched command's return value (instead of
plain true). Apart from being cooler, this now means commands can add
extra checks, which if unmet, can invalidate text (as a command) and
cause it to be written to all users as a chat message anyway.