Make method lookup treat *foo as \*foo

It is possible to call a method on a typeglob with an IO thingy, as in
*ARGV->getline.  This treats the invocant as a handle and looks up its
methods in IO::File.

As of commit 7156e69, a typeglob without an IO thingy is treated
as a class:

$ ./perl -Ilib -e 'sub foo::oof { print "foof!\n" } *foo->oof'
foof!

It did not occur to me back then that globs were being stringified in
method lookup.

Before that commit, names beginning with a non-alphabetic character
were permitted for handle names, but not for package names.  That
fact, and the fact that symbol lookup in general will ignore an ini-
tial * followed by a letter, allowed *ARGV->getline to work.

For *Package->foo to work was a mistake.

It turns out, also, that the glob stringification could cause the
wrong handle to be used, e.g., after glob aliasing.  Also, a handle
whose stringification begins with * followed by a non-alphabetic char-
acter will not work, because symbol lookup does not strip * from the
stringified glob:

$ ./perl -Ilib -e '$::Foo::VERSION; package Foo; open FH, "perl"; *FH->getline'
Can't locate object method "getline" via package "*::Foo::FH" (perhaps you forgot to load "*::Foo::FH"?) at -e line 1.

This commit fixes all this inconsistency by simply not stringifying
the glob.  *FH->foo is now treated the same way as (\*FH)->foo (as it
already was in those cases where it worked).

This does allow PVLV globs to reach code that they couldn’t reach
before, so this patch has to handle those, too.  (newRV probably ought
to handle PVLVs, but it currently doesn’t.)