Designs for new, more uniform command sequences for various utilities.

Two goals:
 1) allow switches to appear anywhere in the command line,
    not just at the front, the way Unix wants them.

 2) have one kind of quoting mechanism that quotes for all
    levels: both within the shell, and in the utility that it invokes.
    Thus, `rm "-f"' deletes the file names -f, because the -f
    is quoted.

2 is necessary in order to do 1 properly, as well as desirable in itself,
because many Unix programs accomplish 2 by a positional mechanism
where arguments past a certain point are not even considered as switches.

To do 2, it is necessary to pass the utility information on which
arguments were specified using shell quoting mechanisms.

One method is to put in front of each argument string
a byte that is nonzero if the arg was quoted.
This means the utility can check argv[n][-1].
Arguments resulting from globbing should also be marked "quoted".
The utility will not consider a quoted argument as a switch
even if it looks like one.

Other conventions:

-- as an argument always refers to standard input.
It is an error in any utility that needs an actual file
and cannot accept stdin.  - may be treated in this way also
if it is so treated in the Unix version of the utility.

If a switch needs a value to accompany it, the switch and the
value should be given as separate arguments.  If the Unix
version of the utility accepts them as a single argument,
the GNU version should permit that also, but it is never
the preferred form in GNU.

If the Unix original accepts switches whose names start with +,
the GNU utility should provide an alternative syntax using
a switch name that starts with - instead.  If the Unix original
accepts -DIGITS, the GNU version should pick a letter for this
(call it x) and accept -x DIGITS.

These are designed so that the utility can support both its new
command sequence and its old one.
