Fix usage tests and ensure they have a terminal on stdin

Avoid the indented note at the bottom of the main usage display by using
the multiple spaces around actual subcommand names.  Re-enable test_usage().

Many subcommands given no arguments choose whether to filter stdin or
to display their usage depending on isatty(STDIN_FILENO).  When testing
that usage messages are produced, ensure commands get a terminal on stdin;
otherwise skip these tests if a terminal cannot be arranged.