Remove compile-time checking of rv2?v with const kid

There was code in op.c:ck_rvconst (which runs when creating a derefer-
ence op, such as rv2sv, rv2av, etc.) that would check that a constant
kid holding a reference pointed to something of the right type.  It
failed to take overloading into account.

The result was that these lines would fail to compile:

    constant_reference_to_hash_with_coderef_overloading->();
    constant_reference_to_sub_with_hashref_overloading->{key};
    constant_reference_to_sub_with_arrayref_overloading->[0];
    constant_reference_to_sub_with_scalarref_overloading->$*;

even though they should work.

Since the overloadedness could change any time, even checking for that
in op.c is incorrect.  The only correct fix is to remove this compile-
time check.  If something naughty gets through, it will be caught
at run time.

This fixes bugs #122607 and #69456.
Stop ck_rvconst from treating GV constants as strings

sub foo { 42 }
use constant bar => *foo;
BEGIN { undef *foo }
warn &{+bar};
warn bar->();

Obviously the last two lines should print the same thing, because they
both call the value of the ‘bar’ constant as a suroutine.

But op.c:ck_rvconst messes up the ‘bar->()’ at compile time, treating
the bar glob (a copy of the original *foo glob, and not the *foo glob
itself, which has since been undefined) as a string and using it to
look up a glob.

ck_rvconst should not do anything if the constant’s value is a glob.
toke.c: Remove unnecessary condition

This code skips over a quoted string, handling escapes.  And to han-
dle escapes it skips past the character following a backslash if that
character is itself a backslash or the quote character.  Skipping past
the character after the backslash unconditionally, regardless of what
it is, has the same effect and uses less code.

This change shrunk the .o file.

Before:
-rw-r--r--  1 sprout  staff  671148 Aug 24 20:28 toke.o
After:
-rw-r--r--  1 sprout  staff  671100 Aug 24 22:37 toke.o