@varcheck, @varcheck_emptyok

These safety check instructions (controlled with --keep-safety-checks)
can be used to generate non-essential "is variable set [and not empty]?"
checks:

>> # @varcheck v0 v1
>>> : ${v0:?}
>>> : ${v1:?}

>> # @varcheck_emptyok v0 v1
>>> : ${v0?}
>>> : ${v1?}
@varcheck: quote varnames, accept $$
hide fs paths of foreign modules
add support for module library "overlays"

Feature from shlib's dynamic module loader that allows to use
more than one module library.
add --[no-]enclose-sections switch

Allows to suppress "### begin section ..."/"### end section" lines.
always use stable sorting

This makes the --stable-sort switch a no-op,
but it's kept for backward compatibility.
add DEFAULT_SHLIB_DIR
allow to override search offset via --dropin

The default behavior when dealing with multiple module roots is a
downward search, i.e. look up dependencies for a module at level N
only in roots of level >= N.

--dropin may be used to start the search at the top level,
so that "upper-level" module roots can override "lower" ones.