Fix assert fail with my $x; sub() {$x}

If $x is not referenced or used in lvalue context elsewhere, then the
constant sub can actually share the same scalar as the enclosing sub’s
pad.  It doesn’t need to copy.  And we don’t in that case, as of
v5.21.5-421-g04472a8.  But we need to make sure the PADTMP flag is
turned off at scope exit if the pad has the only reference to the sub.
(The PADTMP flag has been turned on as of v5.21.5-391-g5543332.)
Manually revert ‘Remove SvREADONLY_on from op.c:op_const_sv’

This effectively reverts d0a32af375ac806258a97cce0091ce4b3636f8dc.

It was wrong.  And I should know that, too.

I was the one who implemented padtmp swiping and went around turning
on the read-only flag to make it work correctly.

This fails, because the second call to &$sub returns undef, its value
having been stolen by the $y assignment.

use Test::More tests=>1;
my $sub = sub {
    my $x = "x"x2000; sub () {$x};
}->();
$y = &$sub;
$z = &$sub;
is $z, $y;