Implement replace_sequence

This can replace a sequence of OPs: Think siblings, not neighbors in
execution order.

For example, "my $x = $_[0]; $x = 12; $x = 12; return $x" becomes:

h  <1> leavesub[1 ref] K/REFC,1 ->(end)
-     <@> lineseq KP ->h
1        <;> nextstate(main 2 (eval 13):1) v:%,2048 ->2
4        <2> sassign vKS/2 ->5
-           <1> ex-aelem sK/2 ->3
-              <1> ex-rv2av sKR/1 ->-
2                 <#> aelemfast[*_] s ->3
-              <0> ex-const s ->-
3           <0> padsv[$x:2,3] sRM*/LVINTRO ->4
5        <;> nextstate(main 3 (eval 13):1) v:%,2048 ->6
8        <2> sassign vKS/2 ->9
6           <$> const[IV 12] s ->7
7           <0> padsv[$x:2,3] sRM* ->8
9        <;> nextstate(main 3 (eval 13):1) v:%,{,2048 ->a
c        <2> sassign vKS/2 ->d
a           <$> const[IV 12] s ->b
b           <0> padsv[$x:2,3] sRM* ->c
d        <;> nextstate(main 3 (eval 13):1) v:%,{,2048 ->e
g        <@> return K ->h
e           <0> pushmark s ->f
f           <0> padsv[$x:2,3] ->g

By passing the nextstate before the second sassign as the start of the
sequence and the third sassign as the end of the sequence, plus some
replacement OP, we can patch out the constant assignments (see tests)
and get something like: (mockup)

h  <1> leavesub[1 ref] K/REFC,1 ->(end)
-     <@> lineseq KP ->h
1        <;> nextstate(main 2 (eval 13):1) v:%,2048 ->2
4        <2> sassign vKS/2 ->c
-           <1> ex-aelem sK/2 ->3
-              <1> ex-rv2av sKR/1 ->-
2                 <#> aelemfast[*_] s ->3
-              <0> ex-const s ->-
3           <0> padsv[$x:2,3] sRM*/LVINTRO ->4
c        <0> somereplacement -> d
d        <;> nextstate(main 3 (eval 13):1) v:%,{,2048 ->e
g        <@> return K ->h
e           <0> pushmark s ->f
f           <0> padsv[$x:2,3] ->g