split get_facts and use_facts from get_and_use_facts.
fix teh build
Ensure OSR-triggered optimize is used next invoke.
Merge remote-tracking branch 'origin/split_get_use_facts'
Tweak spesh log run count.

4 was too few runs; 8 spots a bunch more things as being unstable
and not worth specializing on.
Bump minimum bytecode version to 2.
Split out part of frame deserialization.

The split out part will be able to happen lazily, the first time we
need it. (At present that won't be much of a win as we touch many of
the frames at startup to install static lexical information; the plan
is to move this information into the bytecode file also).
Preparations for lazy frame deserialization.
Switch on lazy frame deserialization.

Or at least, the parts we can easily get away with putting off until
later. While it needs further work to take further advantage, NQP
shows a 2.2% and Rakudo shows a 1.4% memory reduction for the empty
loop program.
Spec static lexical values table in bytecode.
No longer need to support Parrot cross-compiler.

It's almost certainly broken beyond repair to cross-compile from
Parrot to Moar anyway, so no need to keep these last bits around.
Update MAST::Frame to hold static lex values.
Write static lex values; read but don't apply them
Read in static lexicals.
MAST nodes can be identified by exact type.
we can use the vm's empty string constant here.
this argument was called "vm" misleadingly ...
Toss dead macro.
we should never depend on this working.
some smrt_strify can be optimized into simpler ops

like unboxing a string or unboxing num/int and coercing.