Improve implementation of --help

Implement --help as a normal option.

Automatically run help only when there are no arguments, no known
options, and there should be at least one argument.

Count the maximum number of arguments, so we can tell when it has been
exceeded (if we’re being strict).

When we give help because of a syntax error, exit with error code.
Take advantage of improved argument counting and help message by commander
Fix some comments and one minor code infelicity