lib/n/syscall: make damn sure we use the right errno

Because the code in syscall.n could easily be doing
allocation/deallocation (and call malloc/free, which could set
errno...), so to be sure, we immediately store errno right after the
syscall, in a static __thread variable.

This is not the only approach. We could pass in an (int* eno) to the
syscall wrappers. TBD...
lib/n/syscall: Unlink
lib/n/syscall: Sysconf

First of several functions that require that errno be set to 0 first, as
a -1 return value may not indicate an error.
bootstrap/cprinter: print_deffun(): skip when parent is DEFINTF

Now that we call dyn members directly, we don't ever need to go through
print_deffun() in this case. Most of these paths had been removed in a
prior commit, but one was left through print_topdeps().
bootstrap:cprinter: module private functions are sometimes unused

To avoid a warning from the C compiler, we mark them
__attribute__((__unused__))
Accept recent test output changes
bootstrap: new module naming convention

When trying to open a module c.b.a, the compiler proceeds in order:
 - If c/b/a.n exists, but c/b/a/ doesn't, then this is a single-file
   module. A single-file module must start with #!.
   Their use is usually reserved to entry points to a program, tests,
   etc.
 - If both c/b/a.n and c/b/a/ exist, then this is a multi-file module
   using c/b/a.n and all the files in c/b/a/*.n (that are not themselves
   entry points).
   c/b/a.n must start with #! and is an entry point.
 - If c/b/a/ exists, this is a multi-file module. It is not an entry
   point, and is made up of all the files in c/b/a/*.n (that are not
   themselves entry points).

This patch doesn't implement the entry point detection logic yet. It
doesn't allow for single-file modules to exists in a directory that is
otherwise used by a multi-file module.
bootstrap:topdeps: fix subtle missing "inline struct" ordering constraint

When a type from module mod1 depends on a generic defined in module
mod2, that itself "inline struct" depends on a non-generic also in module
mod2.

E.g. mod1.foo depends on (n.builtins.Vararg U8), which depends on
n.builtins.Varargint. The definition for (n.builtins.Vararg U8) may be
written out in mod1.n.o.h, meaning the full definition of
n.builtins.Varargint must be visibile by that point, i.e. mod1 must have
an inline struct dependency on n.builtins (it must be an inline import).

We were previously not adding the inline import for that case, and would
fail unless the dependency was otherwise necessary.
bootstrap:cprinter: print_topdeps: move conditionals out from inner loop

They don't depend on '_t', only on 'node'.
Accept recent test output changes