Parser for command line arguments.
This parses command lines according to the standard (?) of GNU utilities.
Note: This is still used in 1.1 libraries so do not add 1.2+ dependencies.
Note that CLArgs uses a backing hashtable for the options index and so
duplicate arguments are only returned by getArguments().