bootstrap:cprinter: use memmove in BG_TRIVIAL_COPY_COPY_CTOR
lib/n/builtins: export element fields in tuples
bootstrap:cprinter: .o.h under FWD_DEFINE_TYPES must eventually included
lib/n/path: remove Dir and Base: they don't really have obvious semantics

Go makes the following choices, but they're not at all obvious to me.
	"/".Base == "/"
	"".Base == "."
They appears to follow basename(1) in the first case. But it could still
lead to problems.

Path.Split should be used instead, on a clean path.
bootstrap:unify: fix unification of literals with ungenarg
Accept recent test output changes
bootstrap:passzero: defchoice: use strtoll(tag)==0 to check for default, not strcmp

Accept '0x0'...
bootstrap: introduce syntax for creating union variant from external payload

	union un =
		| A -> I32

For initialization, the following forms are supported:
	let x = {}:un.A
	let x = 1:un.A
	let x = y:un.A

When accessing a variant with an external payload, the expression 'x.A'
is typed with the external payload type 'I32' directly.

We still do not have syntax to obtain the type of a variant payload.
(variant un A) is the tentative syntax, but if we're keeping
hierarchical unions, we would have to somehow support that case as well.
lib/n/cstring: lightweight utility to create null-terminated temporary C strings
bootstrap:cprinter: support match over non-enums and non-unions
bootstrap:cprinter: fix for global extern let
bootstrap:cprinter: global let: cannot use const

Elsewhere in cprinter, we have removed const references. Therefore it
doesn't make sense to mark global definitions const, or we wouldn't be
able to take references to them, which would be const references and not
compatible with references appearing elsewhere.
lib/n/syscall: wrappers for basic syscalls