out-of-memory handling

* autoopts/tpl/opthead.tlib: capture the exit code named "no-mem" or "nomem".
  (nomem_err): emit new function when "die-code" is specified and a no-mem
  exit code is also specified.
* doc/autogen-texi.txt: document this.
allow suffixes on exe name

* autoopts/tpl/agtexi-cmd.tpl:
  The templates must use the columns program from the same directory
  as autogen itself.  Use echo/sed to replace "autogen" with "columns".
* autoopts/tpl/agtexi-file.tpl: likewise
* autoopts/tpl/cmd-doc.tlib: likewise
* autoopts/tpl/def2pot.tpl: likewise
* autoopts/tpl/options.tpl: likewise
* autoopts/tpl/str2init.tlib: likewise
* autoopts/tpl/usage.tlib: likewise

* agen5/opts.def: separate autoopts options from autogen ones.
* autoopts/test/vendor.test: adjust test
* config/libopts.def: shorten comment
optionPutShell must write usage to stderr

The recommended usage for option parsing programs that emit text
to be evaluated by a shell must always write usage text to stderr.

* agen5/autogen.c (done_check): fix warning
* autoopts/test/defs.in
  send xtrace output to fd 8 and capture stderr when getting help.
  optionPutShell() programs now emit usage to stderr.

* autoopts/tpl/optcode.tlib: unistd now required for optionPutShell
* autoopts/tpl/optlib.tlib: rework main proc variables
* autoopts/tpl/optmain.tlib: use these variables to decide how to
  produce the doUsageOption code.

* doc/auto-opts.tlib: improve debug aids
* doc/mk-agen-texi.sh: emit all the log files on error

* autoopts/test/handler.test: adjustments
* autoopts/test/immediate.test: likewise
* autoopts/test/shell.test: likewise
* autoopts/test/stdopts.test: likewise
use test guards only for test-main

Inserting these guards are a dinkleberry from a decade ago.
Insert the guards IFF "test-main" is specified in the
option definition file.  If "main" is specified, then
the code is unconditionally compiled in.

* autoopts/tpl/optmain.tlib:
  "guarded-test-main" is a boolean computed in optlib.tlib.
  emit the test main guards IFF this is #t (true).
* autoopts/tpl/optcode.tlib:
  Do not emit a define for the test main guard.
* autoopts/test/argument.test: adjust
* doc/auto-opts.tlib: remove debug code
Mulligan: emit exit command for shell processing

When libopts exits for any reason, the shell must be told to exit.

* autoopts/proc-state.def: new option processing state: shell-output
  marks the options as requiring shell status to stdout and all
  other text to stderr.
* autoopts/test/defs.in: remove from usage any line starting with
  "exit" and then a digit.
* autoopts/test/getopt.test: specify shell-process type main().
* autoopts/test/shell.test: likewise, and adjust usage text
* autoopts/tpl/optcode.tlib: add new SHELL_OUTPUT process flag
* autoopts/tpl/optlib.tlib: main proc attribute validation
* autoopts/tpl/optmain.tlib: do not fiddle stdout.  Use new flag.
* autoopts/tpl/usage.tlib: use unspecified main procedure type.
* autoopts/usage.c (optionUsage): print exit code in presence of
  OPTPROC_SHELL_OUTPUT flag, and then redirect output to stderr.
* */opts.def: eliminame NLS code.  Nothing is translatable.
* doc/autogen-intro.texi: belated cleanup
paged usage cleanup

It, too, needs substantial work to cope with shell scripts reading
standard input.

* autoopts/pgusage.c (open_tmp_usage): extracted new proc
  (mk_pager_cmd): likewise
  (optionPagedUsage): remove some cluttered code and make sure
  stray "exit 0" commands do not appear in the usage text and also
  print usage text to stderr when necessary.

* autoopts/ao-strs.def: new strings for that code.
funnel all libopts exiting to option_exits

Make certain that upon exit, stdout has an exit command
whenever it is needed and not otherwise.

Also, extract *all* global variable definitions to autoopts.h,
guarded by "AUTOOPTS_INTERNAL".
fix up fixup expression
improve "main shell-process" doc
edit out testing stuff during install

* autoopts/install-hook.sh: autoopts/tpl/options.tpl got dropped
* compat/pathfind.c (pathfind): add a fallback path.
handle flag options in embedded operands

single character option "flags" were not correctly understood.
Also, when looking for ambiguous option names, do not check
the "doc" options -- their name strings are NULL.

* autoopts/find.c (opt_ambiguities): do not compare ambiguous option name
  against a NULL pointer (documentation name).

* autoopts/load.c (optionMakePath): break path name canonicalization code
  (optionLoadLine): save and restore processing flags and turn off
  OPTPROC_ERRSTOP while processing a line.

* autoopts/test/main.test: fix embedded flag option test.

* autoopts/tpl/agtexi-cmd.tpl: if sedding the autogen name does not find
  you the columns program name, then fall back to "which columns".
* autoopts/tpl/cmd-doc.tlib: likewise
* autoopts/tpl/def2pot.tpl: likewise
* autoopts/tpl/getopt.tpl: likewise
* autoopts/tpl/options.tpl: likewise
* autoopts/tpl/str2init.tlib: likewise
* autoopts/tpl/usage.tlib: likewise
bump version to 5.18
set release version
cast "char" to "unsigned char"

* add-on/char-mapper/map-text.def:
  The compiler will sign extend negatively valued characters
  before casting to "unsigned", yielding largish values for
  the 0xE2 character.

Fix spelling of "precede".
update NEWS
Coverity tweaks
fix typo