Fix failing for() test

In void context Perl converts OP_POSTINC to OP_PREINC, since the
return value does not matter anyway, so it's less confusing to use
a preincrement operator for this test.
Fix ASTification of do{} block in statement sequence

----------------------------------------------
 Block 'scope' (
   StatementSequence
 )
----------------------------------------------
B::Concise::compile(CODE(0x21aa1d0))
d  <1> leavesub[1 ref] K/REFC,1 ->(end)
-     <@> lineseq KP ->d
1        <;> nextstate(main 2 (eval 15):1) v:%,x*,x&,x$,134219776 ->2
-        <1> ex-rv2sv vK/17 ->3
2           <#> gvsv[*a] s/OURINTR ->3
3        <;> nextstate(main 5 (eval 15):1) v:%,{,x*,x&,x$,134219776 ->4
-        <1> null K*/1 ->-
c           <@> leave KP ->d
4              <0> enter ->5
5              <;> nextstate(main 4 (eval 15):1) v:%,{,x*,x&,x$,134219776 ->6
-              <1> null K*/1 ->c
b                 <@> leave KP ->c
6                    <0> enter ->7
7                    <;> nextstate(main 3 (eval 15):1) v:%,{,x*,x&,x$,134219776 ->8
a                    <2> sassign sKS/2 ->b
8                       <$> const[IV 1] s ->9
-                       <1> ex-rv2sv sKRM*/1 ->a
9                          <#> gvsv[*a] s ->a

This happens because the code in pj_build_block_or_term skips over null ops, which
most of the time are optimized-out constants/nextstate ops, but sometimes are the
root of a do{} block. And who knows the other special cases that lie ahead...