bootstrap:cprinter: support 'isa' operator on type expressions

It was only supported on dyn values so far.
bootstrap: vararg: support passing a slice as vararg

The call syntax is
	foo a opt=1 ...v
	foo a opt=1 ...{1 2 3}

This still compiles to code that uses C vararg. However, when passing a
slice in, the _$Nvarargcount argument is set to -1 and a single argument
is passed after the count: a pointer to the slice.

The Vararg.Next builtin either uses va_arg or gets the element from the
slice, depending on the value of the _$Nvarargcount argument.
bootstrap: add pretend support for 'var': like 'let' but allows mutation

We held out introducing 'var' for as long as we could.
'let ... such ...' is great, but despite our best efforts, there really
are cases where adding a level of indentation for the such block is just
a pain. We suspected things may come to this. However, we have acquired
a strong taste for 'let ... such ...' and we hope other can be convinced
to give it a preferred status to a plain 'var'.

This commit only adds support in the lexer: 'var' is parsed like 'let'.
This works because the compiler doesn't yet enforce constness of
variables declared with 'let'.

TODO: complete support.
lib/n/builtins: Resize for Slicebuf and Stringbuf
lib/n/builtins: `String is not `Trivial_copy_but_owned, String is

We had `Stringbuf declare isa `Copyable, but that wasn't hiding
`Trivial_copy_but_owned declared by `String (`Stringbuf isa `String).
The right approach is to declare `Copyable on `String and
`Trivial_copy_but_owned directly on String.
bootstrap:inference: check error on bin acc resolution
bootstrap/lexer: do not error if lexer_scan() crosses into the next component

Since we enforce that components are newline terminated, there is no risk
of having a token stretch across multiple component files.
bootstrap:stage: cleanup dependency sorting code
bootstrap:types: fix typ_create_ungenarg(): setting of gen0
bootstrap:types: overlay: fix mapping for generic methods in generics
bootstrap:types: resolve accessor: fix tit olay anchor when left is a ref
bootstrap: reintroduce literal strings (but not weak concretes)

The weak concrete solution had created problems, so it was removed. But
the ability to coerce strings to `String_compatible types, such as Path
or Rune is convenient. This commit reintroduces it and follows the
approach used for __literal_slice__.
LICENSE, NOTICE: Add notice for Go's license

The N standard library will, initially at least, draw heavily from the
excellent Go standard library. Include their 3-clause BSD in our LICENSE
file.
lib: extensive updates: builtins, io, path