modules: store loaded modules in context struct.

* m4/m4private.h (struct m4_module): Add a next pointer.
(struct m4): Add a module list pointer.
* m4/module.c (m4__module_open): Initialise the next pointer and
update the list head when a new module is successfully opened.
(m4_module_next): Replace the ugly libltdl twiddling with a
straight forward module list traversal one-liner!
Add a context parameter. Adjust all callers.

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