more NAN FP fixs for VC6/NAN_COMPARE_BROKEN compilers

op/infnan.t now passes all tests on VC6
Document the double-double format a little.
Add comment about the double-double extraction.
hexfp: use the bytewise extraction also for plain doubles.

Instead of the frexp+ldexp way which doesn't work when NVSIZE > UVSIZE.
Make certain we have the top-level "lib" in @INC.
Add dVAR:s for -DPERL_GLOBAL_STRUCT.
Comment detypo.
Conditionally unused variable.
Unused return value.
in Perl_sv_copypv_flags move mg_get call to callee

Perl_sv_2pv_flags already has logic to check for and call mg_get, which
can't be removed due to API, so dont do it in the caller. This makes
Perl_sv_copypv_flags smaller/faster by removing the branch.
POSIX math: Tru64 has rint()
POSIX math: the pa-risc gcc missing tgamma and nexttoward
POSIX math: AIX 7 has nexttoward
perlsyn: Remove reference to potential Unicode op

See thread beginning at
http://nntp.perl.org/group/perl.perl5.porters/219796
gv.h: Add a gp_flags field

This is for flags that have to be shared with all GVs that have the
same GP pointer.
Skip no-common-vars optimisation for aliases

The ‘no common vars’ optimisation allows perl to copy the values
straight from the rhs to the lhs in a list assignment.

In ($a,$b) = ($c,$d), that means $c gets assigned to $a,
then $d to $b.

If the same variable occurs on both sides of the expression
(($a,$b)=($b,$a)), then it is necessary to make temporary copies of
the variables on the rhs, before assigning them to the left.

If some variables have been aliased to others, then the common vars
detection can be fooled:

    *x = *y;
    $x = 3;
    ($x, $z) = (1, $y);

That assigns 1 to $x, and then goes to assign $y to $z, but $y is
the same as $x, which has just been clobbered.  So 1 gets assigned
instead of 3.

This commit solves this by recording in each typeglob whether the sca-
lar is an alias of a scalar from elsewhere.

If such a glob is encountered, then the entire expression is ‘tainted’
such that list assignments will assume there might be common vars.
Dump GPFLAGS
toke.c: Fix bad read in S_scan_heredoc

If the first character of a source line matched the first character
of the here-doc terminator, then we did a memEQ with the length of
the terminator, without regard to the length of the line, which
could be shorter.

This bug goes all the way back to perl 3.000, which introduced here-
docs.  Line 1802 of toke.c in perl 3.000 is:

		    if (*s == term && bcmp(s,tokenbuf,len) == 0) {

and contains the same bug.

So this bug is twenty-five years old.
replace uses of Test.pm in dist/ distributions (IO, Math-BigInt)
Increment $VERSION in Math::BigInt.