Fix deparsing of glob(my $x) and CORE::glob

A git bisect run like this:

$ ../perl.git/Porting/bisect.pl --start=v5.12.0 --end=v5.18.0 -e 'use B::Deparse; die if new B::Deparse->coderef2text(sub{glob my $x}) =~ /</'

points to v5.13.8-86-gd1bea3d as being the commit that cause it to
output <my $x>.

But my local 5.14.4 installation still outputs glob(my $x), so I am
not sure which commit is responsible.  I suspect it changed multi-
ple times.

In any case, B::Deparse was expecting the argument to pp_glob always
to be a string, which is certainly not guaranteed.

This commit also causes CORE::glob to be deparsed correctly.  glob is
one of those oddities like require that gets only half-overridden by
overrides.  In this particular case the built-in pp_glob is still
used, but takes a different code path depending on whether it was pre-
fixed with CORE::.  So, while glob is a strong keyword, it needs to be
treated as a weak one for deparsing purposes.
op.c: Factor out common entersub-building code

This same incantation occurs four times, though the readpipe variant
was slightly different.  The only difference was the lack of a scalar
flag on a null op, which makes no difference:

-           <1> ex-rv2cv sK ->-
5              <$> gv(*require) s ->6

-           <1> ex-rv2cv K ->-
5              <$> gv(*readpipe) s ->6

So I did not include the scalar() call, as it was unnecessary.  Also,
I changed op_append_elem to newLISTOP, since the former calls the lat-
ter anyway in these cases.