Add --input-file & --output-file options and fix outputs

These options specify individual input files, either in addition to or instead
of specifying extensions and directories.  They are matched correspondingly:
the first input file specified is matched with the first output file specified,
the second is matched with the second, and so on.  If more of one than the
other is specified, the corresponding matches are padded with the empty string,
which currently represents stdin for input, and "no output" for output.

Outputs are now formatted differently - instead of two endlines after each
message, there is a single endline, but the message is emphasized by starting
with ">>".  Error messages start with ">>>" to make them distinct.
"Passed" message in verbose mode starts with a single ">".