To-do tests for deparsing regexp code blocks

Currently we have various bugs:
• Line breaks often come out as \n, changing the meaning.
• Some blocks are doubled up with do{...} for the first instance.
• qr/sub { .... }/ madness
Deparse qr/(?{code_blocks})/ with no interpolation

This is a preliminary patch that only applies when there are no varia-
bles interpolated into the pattern outside of the code blocks.

The code blocks are now actually deparsed, instead of the stringified
form just being reproduced.  This means the \n bug is gone:

Before:

$  ./perl -Ilib -mO=Deparse -e '{ qr/aaaaa\\\\\\(?{;' -e '$y})' -e '/}'
{
    qr/aaaaa\\\\\\(?{;\n\$y})\n/;
}
-e syntax OK

After:

$ ./perl -Ilib -mO=Deparse -e '{ qr/aaaaa\\\\\\(?{;' -e '$y})' -e '/}'
{
    qr/aaaaa\\\\\\(?{ $y; })\n/;
}
-e syntax OK

You can see the \n translation now happens only outside of the block.

It also means here-docs work:

Before:

$  ./perl -Ilib -mO=Deparse -e 'qr/(??{<<END})/' -efoo -eEND
qr/(??{<<END})/;
-e syntax OK

(The output is a syntax error.)

After:

$ ./perl -Ilib -mO=Deparse -e 'qr/(??{<<END})/' -efoo -eEND
qr/(??{ "foo\n"; })/;
-e syntax OK
Deparse.t: Put a line break after the test code

The line break gets removed when it is extracted from the __DATA__
section, and then it gets wrapped in sub{$input}.  That breaks
here-docs.
Deparse regexp code blocks in m// and split //

The blocks themselves are now deparsed, rather than the original strings
being emitted.  This fixes problems with newlines turning into \n and
here-docs missing their bodies.  It only applies to compile-time patterns.
Run-time patterns (with variables interpolated outside the code blocks)
are still unfixed and deparse with do{...} embedded in the pattern.
Deparse qr// and m// with code blocks and vars

Before, this:

/$a(?{ die $b; })/;
qr/$a(?{ die $b; })/;

would deparse as this:

/${a}do {
    die $b
}(?{ die $b; })/;
qr/sub : lvalue {
    $a, do {
        die $b
    }, '(?{ die $b; })'
}
->()/;

Now it deparses correctly.
Deparse.pm: Fold some logic into sub code_list

Both callers were doing $op->first->sibling, so just have code_list
do that itself.
Deparse s/// with code blocks

Before, s/$a(?{die})// would deparse like this:

s/${a}do {
    die
}(?{die})//;

Now it deparses correctly.
[Merge] Deparse regexp code blocks

The actual ops that make up the code blocks are now deparsed.
B::Deparse no longer uses the stringified form stored in the regexp.
This fixes a few bugs.  See the individual commits for details.