Add ability to name column/field indices via `fields`/`toDef` & check hdrs.
Add ability to name column/field indices via `fields`/`toDef` & check hdrs.

Be careful to allow user-override of the format string (genF) so users can
work around name collisions between DSV column headers & internal names.
Also be careful to both not define and to warn users when *internal DSV*
names collide in a Nim-style insensitive fashion.

Be more judicious about name pollution by the row processor engine, putting
an "rxNm" prefix in front of a few things that might be row headers.

Nix [oe]; Users can say `let o=stdout` in `begin` if they want.

Update main help to have more "punch per glance".

Also a bit of reformatting of the generated program.

Add cmdName to dispatch so ~/.config/rx works.

Maybe add `discard` to main loop so that empty argument invocation works
(but hangs on reading stdin if there is no input redirect, of course!).

------

This seems near feature-complete and 5-100x faster than mawk/gawk as well
as having the named-field/column feature (IMO a huge extra).

There is a CLargs logical gap where users may want to not check but also
want to skip some header row.  They can do this with an `nr > 0` in their
`test` expression (or > anything, really).

Similarly, to get a file writing syntax (that this commit deletes a comment
for) users can `import cligen/osUt; template w(p):untyped=autoOpen(p)` in
their `prelude` section, staying more in charge of their name space.

c-blake/cligen