fail if missing command, suggest alternatives

single dash now indicates boolean, double dash takes an argument.
Reason: if only single dashes are used, there is a potential ambiguity
when a mistyped command is precede by a boolean option:
the command will be treated as an argument to that option
and the first required argument, if it exists, will
be identified as the dangling element