Allow extops to provide flags and spesh.

This means we can mark extops pure so dead code elimination can kill
them, as well as provide a spesh function for an extop.
Don't keep guards just because of usage analysis.

This should allow a few more unrequired guards to be thrown out.
allow extops to put facts into the spesh fact database.
forgot to resolve discovery function in extop records
know type and containerness information for bigint ops
Use handlers from spesh graph at code-gen time.
Support inlining of frames with handlers.
Fix missing MVM_PUBLIC in update_ops code-gen.
Enable inlining of lexotic.
Allow us to add temporaries when optimizing.

Some optimizations we wish to do will need an extra temporary register
to store something in. This patch enables us to have such registers.
It also provides an acquire/release model so we can re-use these
temporaries, minimizing the number we need to add.
Specialize unboxing of incoming object args.
Cope with locals resizing without inlining.

In a few places we assumed only inlining could do this. That's not
true any more, however, now that we have the ability to add extra
temporaries.
Specialize boxing of args also.
Specialize boxing of named args.
Specialize unboxing of named args.
Some MAST::Nodes optimizations.

Provide a way to construct MAST::[Ext]Op faster when we already have
an array of operands, and sprinkle a few native types.
can do objprimspec at spesh-time
but please without debug spam.