ModuleRunner: report Errors as well as Exceptions

Previously, we only caught RuntimeExceptions, so any Errors that were
thrown during module execution (or pre- or post-processing) were being
silently ignored.
InvalidCommand: apply some TLC so it works again

There were a few issues, but it now once again works as intended, with
two invalid parameters.

The "output" parameter was also an illegal shadow, so that one was
renamed to "out" to avoid confusion.

The "q" parameter was renamed to "x" since the latter actually *does*
shadow another private field from ParameterTester.

There were also minor improvements to the javadoc.

Most weirdly, the ParameterTester#cancel() method makes use of an
assumed-to-be-non-null LogService, which *will* be null in the case of
the InvalidCommand subclass because the ValidityPreprocessor fails out
the command before the ServicePreprocessor can populate the LogService.
To avoid the issue, we override the cancel() method to do nothing,
avoiding the NPE. Another way to avoid the issue would be to wrap the
ParameterTester#cancel() method's logging in 'if (log != null)' but that
would seem quite odd when studying that command, since it is seemingly
impossible for log to be null at that point in execution.