Peek.t: Drop 5.8 support

There is no reason these tests need to run on such an old version
any more, and this is getting in the way of something I am trying
to do.
gv.h: Make gp_line and gp_flags into a bitfield

This reduces the allocated size on Windows, where an
extra header is added to what gets allocated.  See
<https://rt.perl.org/Ticket/Display.html?id=15667#txn-1309657>.
Stop flip from returning the same scalar each time

sub f {
  for my $n (1..5) {
    my $x = \scalar($n == 2 .. $n == 4);
    $_ = $x if $n == 1;
    print "$n: $$_\n";
  }
  print("-----\n"), f() if @_
}
f(1);

Output:

1:
2: 1
3: 2
4: 3E0
5:
-----
1:
2:
3:
4:
5:

When f() is called, it evaluates a flipflop five times.  It takes a
reference to the return value the first time, and prints that same
scalar for each iteration.

Notice how the very same scalar is returned each time in the outer sub
call, but the recursive call hides that implementation detail.

.. should not be returning the same scalar each time, or at least that
implementation detail should not leak through.  (Most operators do
reuse the same scalar, but the scalar is flagged such that \ will copy
it, hiding that fact.)

This was happening because of the eccentric way that the flipflop
targets are allocated in the pad.  They are allocated as PADMY (i.e.,
like ‘my’ variables), but without a name.  pad_push (which creates a
new pad for recursion) assumes that anything without a name is PADTMP
instead (copy on reference).  So the recursive call behaves correctly.

I am not sure why the targets were allocated with PADMY to begin with.
(This goes back to perl 5.000.)  But now the PADMY prevents the tar-
gets from being shared with other ops under USE_PAD_RESET builds.

The better way to allocate these targets is to use PADMY as before,
but actually give those slots names.  The target that gets returned
needs to be marked PADTMP, so we also need to copy that flag
in pad_push.
Increase $B::VERSION to 1.52