1/2: bootstrap:types: store more in 'typ': gen_arity
bootstrap:types: enable the use of quickisa on tentative types

We go from a hit rate of quickisa in typ_isa() of roughly 50% to over 95%.
2/2: bootstrap:types: store more in 'typ': gen_args
utils/vim/syntax: space errors: space in indent
bootstrap:cprinter: simplify brace printing for blocks
bootstrap:ssa: factorize some code
bootstrap:passzero: should be using FINALLY_STEP()
bootstrap:ssa: 1/2: get rid of block_state and current_statement
bootstrap:ssa: 2/2: introduce fewer variables (NUMBER, BOOL, and NUL)
1/2: bootstrap: rely on passsem to enforce nullable

We use to have:

	intf `Any_nullable_ref t:`Any =
	       isa `Any_any_ref `Trivial_ctor
	intf `Any_nullable_mutable_ref t:`Any =
	       isa (`Any_nullable_ref t)

We now have:

	intf `Any_nullable_ref t:`Any =
	       isa (`Any_ref t) `Trivial_ctor
	intf `Any_nullable_mutable_ref t:`Any =
	       isa (`Any_nullable_ref t) (`Any_mutable_ref t)

As far as typing and unification are concerned, nullable references and
non-nullable references are now compatible. The semantic pass enforces
that nullable references are known to be nonnull before they are used.

What we had before was a bit of an hybrid. In some places, it was
necessary to use a Nonnull_cast, even after checking the reference
against null. It didn't really make sense.
2/2: bootstrap:inference: allow method calls on nullable self
bootstrap: nullable builtin operator
bootstrap: optional chaining for field access and method calls (except Void)