Make the "compile module" code actually return, rather than call
exit(). This means that we have a "stack" of errors to print if
something goes wrong, so we can track what referred to the item
making the problem.
Allow redundant{} etc. sections to have second names,
and use those names for printing.
Allow subsections in "instantiate", and use those subsections
as "virtual" modules, so that you don't have to copy blocks
of text, if the same kind of redundancy/fail-over is done in
multiple places.
This fixes bug #181
These subsections will later allow us to use the subsection names
in xlat's. e.g.
redundant magic_ldap {
ldap1
ldap2
}
... %{magic_ldap: query...}, which will fail-over from ldap1 to ldap2