Skip over OP_NULL's that have no previous type and have one child

Consider this:

$ perl -MO=Concise -e 'my $x = $a && $b'
8  <@> leave[1 ref] vKP/REFC ->(end)
1     <0> enter ->2
2     <;> nextstate(main 1 -e:1) v:{ ->3
7     <2> sassign vKS/2 ->8
-        <1> null sK/1 ->6
4           <|> and(other->5) sK/1 ->6
-              <1> ex-rv2sv sK/1 ->4
3                 <#> gvsv[*a] s ->4
-              <1> ex-rv2sv sK/1 ->-
5                 <#> gvsv[*b] s ->6
6        <0> padsv[$x:1,2] sRM*/LVINTRO ->7
-e syntax OK

While I don't have the exact picture on why the null OP there exists
(likely because of something related to the duality of boolean and/or
OPs being used in many different and interesting contexts), it appears
relatively safe to do the following:

If a NULL OP is not a compiled-away OP that has its original type
written to the NULL OP's op_targ member, AND it has exactly one child,
then just recurse into the one child as if the NULL OP didn't exist.

This is likely wrong for a number of reasons. But at the same time, if
there's not even a previous OP-type, it's hard to imagine that any of
the flags on the NULL OP really have much of a useful meaning. So maybe
this is actually the right thing. TBD.
Add helper methods to determine value types for better code generation

I know. That code is pretty atrocious. Ideas for more elegant solutions
welcome. (I'm even willing to do the legwork.)