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.