Standardize normalization of command & arg names
Standardize normalization of command & arg names

- Command names are now lower-cased.
- Parameter names are now normalized for internal consistency. Because
  of this, we have to be careful to use parameters' real names where
  appropriate (in particular, as the destination variable names when
  command line options are parsed).
- Only a single trailing underscore is chomped (instead of all leading
  and trailing underscores); this accommodates the convention of adding
  a trailing underscore to avoid shadowing reserved/built-in names w/o
  attempting to understand the meaning of multiple trailing underscores.
- `Command.normalize_name(name)` was added to do the normalizing.

wylee/runcommands,wylee/runcommands