lib/n: fix bugs that were hidden by the old EXAMPLE representation
lib/n/fs: move examples out to t05
lib/n/builtins: factorize some assert, pre, post code
bootstrap:parser: allow named examples

	example name -> assert true
	example name
		assert true

This means that the arrow is now never optional in unnamed one-line form:

	example -> assert true

which is somewhat regrettable.
bootstrap: more flexible try-less except: can return (Error, ...)

A fundamental idiom in the language -- to be enforced by semantic
constraints -- says that in a tuple returned by a function, any value
that appears after an Error is (not ^Init) if the error is not OK.

So we can sensibly support this:

	fun foo = Error, U32
		except = ...

Equivalent to
	fun foo = Error, U32
		let err = ...
		if err != OK
			return err, {}

However, the following is rejected:

	fun foo = U32, Error
		except = ...

as we don't know what U32 value to return, and it's not acceptable to
assume it's 0.

By making except more flexible in this manner, we're encouraging the
application of this idiom.

We could even accept to do this if the return type is (Error,
No_default_ctor), but the compiler would currently reject the
transformed LIR, so we reject for the moment.
t00/within: accept test output changes
bootstrap:cprinter: print_union_types: fix from typedefs removal
Accept recent test output changes
lib/n/mem: move default Heap in there; only `Heap is in builtin
bootstrap: Split `Additive_arithmetic from `Arithmetic

We also separated the "assign" operators (+=) from the regular operators
(+). Next, we will add support for replacing
	a += b
by
	a = a + b
when += is not provided by the type.
bootstrap:inference: clarify error message
bootstrap: convert 'a += b' into 'a = a + b' for types w/o op-assign impl
bootstrap:cprinter: print_import: define a simplifying variable
bootstrap:topdeps: record_final: define var for common expression
bootstrap:inference: automagic de for RHS of op-assign ops (+=, ...)
bootstrap:unify: unify dyn either way: unify_reforslice_arg is symmetric
lib/n/builtins: remove unnecessary direct include of .o.c
bootstrap:topdeps: while instantiating @t, t is not an inline topdep of builtins.Ref
bootstrap:types: olay: map children of generic functor types

For instances, we were properly mapping children (map_children). But for
(uninstantiated) generic functor, map_children was called too early, as
the typ is built before the children (member functions) are themselves
typed. So in that case, we must do another pass after the typing of
children, to map them in the parent typ.

The explosion in the number of cases that must be mapped, made even more
apparent with this change, means we will have to implement on-demand
filed overlays.
bootstrap:inference: on-demand typing of aliases: allow more definition orders

Aliases and isalists are typed in the same passfwd, allowing for one to
depend on the other in a single module, in either order (isa an_alias or
alias a = {`literal `list}), according to the declaration order in the
file.

With this change, we allow more flexibility, typing a DEFALIAS on demand
if it's found as part of a bin_acc lookup (e.g. io.`Writer). This is a
stopgap solution to the compiler using a pure dependency order.