Factor load functionality into include builtin.

* m4/module.c (m4__module_open): Instead of calling lt_dlopenext
right away, use the preload hint first incase path searching has
been disabled by POSIXLY_CORRECT.  Otherwise fallback to a
manual path search to override libltdl's algorithm.
* m4/m4module.h: Adjust.
* m4/path.c (FILE_SUFFIXES): Order to try suffixes in our path
search algorithm.
(NO_SUFFIXES): Alternatively, how to to search a path without
adding file suffixes.
(m4_path_search): Add a new suffixes parameter defaulting to
NO_SUFFIXES.  Adjust all callers.
(m4_load_filename): New generic load function that tries to
open a matched file first as a module, and if that fails fall
back to a (possibly frozen) m4 input file.
(m4_fopen): New function with close on exec functionality.
* modules/m4.c (include): Use m4_load_filename to with modules
or m4 files. Adjust all callers.
* modules/load.c (load): Removed this builtin.
* src/main.c: Remove Dynamic loading features section, and
M4MODPATH support.
(long_options): Remove "load-module", "unload-module" and
"module-directory" options.
(OPTSTRING): Remove 'M' and 'm' options.
(process_file): Use m4_load_filename to support module names
on the command line.
* tests/generate.awk (new_test): Output AT_CHECK_DYNAMIC_MODULE
and AT_CHECK_GMP without relying on the (deleted!) -m option.
* Makefile.am (TESTS_ENVIRONMENT): No need for abs_top_builddir
any more.
* doc/m4.texinfo: Update examples.
(Dynamic loading features, Load): Removed.
(Command line files): Describe how non-option arguments are
treated to try to find a matching macro file or dso.
(Include): Describe additional dso loading features if a
suitable text file cannot be found.
(Modules): Updated.
* tests/builtins.at, tests/m4.in, tests/modules.at,
tests/options.at, others.at: Adjust test cases and calling conventions
to new semantics.
* modules/modtest.m4, modules/shadow.m4, modules/stdlib.m4,
modules/time.m4, modules/time2.m4: Move from here...
* examples/modtest.m4, examples/shadow.m4, examples/stdlib.m4,
examples/time.m4, examples/time2.m4: ...to here, to prevent a
namespace clash with similarly named loadable modules in the
modules directory.
* NEWS: Updated.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>