Manual revert of 0f83c5a4.

(Automatic revert didn't work any more because of too many intervening
overlapping changes.)

The 0f83c5a4 tried avoiding coercing Inf/NaN to IV/UV, but it also
introduced 20-25% slowdown in floating point operations, because of
repeated redundant calling of Perl_isinfnan().  There was noticeable
compiler dependency: the effect was especially visible with gcc 4.8.
Please see the thread "significant slowdown in float arithmetic" by
Dave Mitchell, Message-Id: 20141025155040.GR5204@iabyn.com
Update Test-Simple to alpha 065

This includes a patch from Father Chrysostomos which was already in
blead. An additional fix to some windows configs. And a version bump.
Reduce the number of null ops for \$x=\$y

Assignment to a reference to a package var or element leaves extra
null ops that I didn’t bother removing before because it was incon-
venient.  And I didn’t think the first iteration of the code needed
to do that.

However, all these ops are doing is taking up memory, so this commit
removes some of them.

For scalar assignment, \$x = ... becomes:

  refassign
    rhs expression...
    ex-srefgen
      ex-list
        ex-rv2sv
          gv

The refassign op uses the GV directly, so we can remove all three ex-
ops on the lhs.  For elements, we have

  refassign
    rhs expression...
    ex-srefgen
      ex-list
        ex-aelem (or -helem)
          rv2av
            expression inside ${...}[0]
          index or key

which means refassign gets three arguments.  To make deparsing easier,
we’ll just remove the ex-srefgen and ex-list, leaving the left-hand
expression under a single node (ex-aelem).

Assignment to lexical scalar references was already obliterating the
left-hand expression completetly.

For list assignment, it’s much harder to do, so I’ll leave it for now.
refactor Perl_cv_undef_flags

On VC 2003 32bits size of this function decreased from 0x321 bytes of
machine code to 0x2d8.

cv.h:
- partially reorder Cv* macros to match XPVCV member order
- create CvDEPTHunsafe which never uses SV head except for SvANY ptr since
  Perl_cv_undef_flags uses a fake SV head

pad.c
- remove var slabbed, frees a C auto/non-vol register, there are only 2
  uses, on CvSTART branch, CvFLAGS is reused frm CvISXSUB test by optimizer
- use a CV struct to fake a CV, to avoid rereading SvANY ptr after each
  func call, CVs can't be upgraded or have their bodies realloced
- dont write NULL to CvFILE if CvFILE is NULL, also move NULL assignment
  so CPU address generation can be reused by compiler
- refactor CvROOT/CvSTART/CvXSUB freeing conditionals to simplify code and
  dont check CvISXSUB twice
- CvDEPTH requires a real CV*/CV*, since it checks the SV head with an
  assert, use CvDEPTHunsafe instead, and inline the assert using the real
  CV*. Also move runtime, non-debug "SvTYPE(cv) == SVt_PVCV" check to
  debug  builds per ML post
  "about FC commit "CV-based slab allocation for ops""
- Perl_croak->Perl_croak_nocontext, remove push arg my_perl instruction
- refactor CvPADLIST freeing for provision for future XSUB sub usage of
  CvPADLIST in a union
- in CvOUTSIDE freeing, move NULL assignment so CPU address generation can
  be reused by compiler
t/base/lex.t: Dodge warning

Spotted by Jarkko Hietaniemi.
Unixify the new Test::Simple temp dir on VMS.

We're going to be combining the temporary directory with hard-coded
forward slashes in various path components, so make sure the thing
we're appending to is also in Unix format.

Without this the core test suite on a threaded build hangs in
Thread::Queue because the Test::Simple bug causes lots of things to
fail and Thread::Queue doesn't handle threads that fail.

Hopefully submitted upstream at

<https://github.com/Test-More/test-more/issues/468>

but I have no idea what the relationship is between Test::More
and Test::Simple -- I just followed the link from search.cpan.org
and tried to open an "issue."
Decouple quadmath from longdouble.
Special handling of Cwd and List::Util in configure.com.

This is a follow-up to d689efaf4740b25, where the same thing was
done to Configure.  They weren't getting into $Config{dynamic_ext}
which caused DynaLoader.t to start failing once Test::More started
requiring List::Util.

I question the wisdom of expecting dynamic loading to be working
flawlessly before we can test whether dynamic loading is working
at all.
Update to Test-Simple Alpha 068

 * performance enhancements
 * bug fixes
 * comaptability improvements
overload.pm: Removed an unused variable
Android hints: No locales here, so undef d_lc_monetary_2008
POSIX: C99 support exceptions on Android
POSIX/t/posix.t: Fix skip count for localeless systems
XSLoader: Amend the mod2fname generation to detect more cases
XS::APItest, svpeek.t: Test the correct thing
Replace Test::More with t/test.pl in DynaLoader.t.

Test::More has dependencies on dynamically loaded modules and thus
isn't appropriate for running a basic test of whether dynamic
loading is working.  Plus it provides no features we're using
that aren't also in t/test.pl.  (Just had to make the second
argument to like() a regex instead of a string.)
Bump POSIX version following a7ea4c68ecf.
Bump XSLoader version after 4821216b2814.
free up CvPADLIST slot for XSUBs for future use

CvRESERVED is a placeholder, it will be replaced with a sentinal value
from future revised BOOTCHECK API.

CvPADLIST_set was helpful during development of this patch, so keep it
around for now.

PoisonPADLIST's magic value is from PERL_POISON 0xEF pattern. Some
PoisonPADLIST locations will get code from future BOOTCHECK API.

Make padlist_dup a NN function to avoid overhead of calling it for XSUBs
during closing.

Perl_cv_undef_flags's else if (CvISXSUB(&cvbody)) is to avoid whitespace
changes.

Filed as perl [#123059].
Update Test-Simple to alpha 070

Fix thread issue from 069