Fix: tools: Don't reference the output object in cmdline processing.
The output object won't be set up yet, and it can never be set up before
command line processing because we need to look at the parsed arguments
to know what kind of object to set up. The rest of the code shuffling
is to make args available globally. If --quiet is passed before the
rest of the arguments, we shouldn't add the error.