bootstrap:parser: reject 'foobar not x'
bootstrap:types: correct comment on remove_as_user_of_generic_args()
bootstrap:vector: destroy: clear 'small' memory too
bootstrap: vecnode_remove_replace_with_last: keep vectors short

In several places, we were removing elements from vecnode by setting the
entry to NULL. A much smarter approach is to pop the last element and
move it into the hole.

It's a fast deletion operation for vectors, although it looses element
ordering.
bootstrap:instantiation: fast lookup for suitable existing instances

The linear search through existing instances was quite expensive. This
change saves 20% of total runtime.

As usual (see typset, topdeps), we must be careful when storing
tentative typs in a lookup data structure.

We also change when tentative typs are finalized (link_finalize()
and schedule_finalization()), instead of using
step_gather_final_instantiations(). We still need a
step_gather_remaining_weakly_concrete() as, by definition, weakly
concrete types that are not linked to something else by the end of
bodypass0 finalize to themselves.

By finalizing tentative typs earlier than before (at the end of a
unify*() invokation, as opposed to the end of bodypass0 in
step_gather_final_instantiations()), we can get rid of link_members()
too, and more generally feel better about all of this.
bootstrap: set_typ(): don't automatically call unset_typ()

We want it to be explicit. unset_typ() is not a benign operation. If the
node is a DIRECTDEF, maybe we're intending to overwrite DIRECTDEF.typ
too.
bootstrap:lexer: rename ERROR() to FAIL()
bootstrap: function always ERROR to force return value check

This change caught a few places where we were actually ignoring a
possible error.
bootstrap: complete support for ov ops; restrict to native unsigned; allow bw ops on all ints

We can be a little bit more discriminate about what we allow and what we
do not allow. >> is always well-defined on integers, signed or unsigned,
even when the bitwidth is unknown. So are bw& bw| and bw^.

However, << is renamed ov<< and is no more allowed on signed integers, as
we can loose the sign.

`Overflow_arithmetic in general is not allowed on signed integers
anymore.

The goal is to minimize ill-defined or often-misunderstood behaviors
(the latter is not much better in practice), in application of the
principle of "benign-looking code should be just that". This API may
still change.
bootstrap: support for multiline comments --( )--
1/2: bootstrap: support modules split over multiple files

File names for module a.b must be of the form:
	a/b.n
	a/b_tests.n
	a/b_constants.n

The files are appended together in an arbitrary order to form the module
'a.b', except that b.n is always first.
2/2: bootstrap: support modules split over multiple files: codeloc support

Print error locations with respect to the relevant module component
file.
Codeloc: increase sharing of static strings

Do not create a new static string for each location
("filename.n:line:col"). Instead, store filename, line and col
separately.
bootstrap:parser: ranges: fix handling of the form v.[.. n]
bootstrap:lir: fix handling of break and continue
wip_io
Stop using the Range function
bootstrap: change precedence of ..
Rename Index_{Range,Bounds} to {Range,Bounds}
bootstrap:parser: fix printing of module component filename on error