refactor: get rid of the return values from Command.run().

Output all the output to the logger from the command. Return anything on
success, raise an exception (caught from main.py) on error. Use the command's
object attributes to indicate whether we should continue with resolving or
setting an explicit command return value.