DynaLoader: Introduce d_libname_unique

Android's linker has some unusual behavior, in that it only uses
the basename of a library in its cache.  That means that, as far as
dlopen() is concerned, the libraries for Hash::Util and List::Util,
both of which are called Util.so, are the same.

This commit teaches DynaLoader about d_libname_unique.  When
defined, it signals DynaLoader define a mod2fname sub that renames
the .so files to something "unique" -- so for example,
Hash/Util/Util.so becomes Hash/Util/PL_Hash__Util.so.
Configure: Introduce d_libname_unique
Teach ExtUtils::CBuilder to handle mod2fname properly
perldelta for d_libname_unique
Update Module-Load to CPAN version 0.28

  [DELTA]

0.28    Sat Jan  4 11:07:27 GMT 2014
* Fix 'Prototype after' warnings

0.26    Sat Jan  4 10:08:35 GMT 2014
* New functions added (reisub)
* Documented by magnolia
Update ExtUtils-MakeMaker to CPAN version 6.86

  [DELTA]

6.86 Sat Jan  4 12:17:53 GMT 2014

    No changes from 6.85_07

6.85_07 Wed Jan  1 18:55:22 GMT 2014
    Bug fixes:
    * Expanded test coverage for metafiles

    Doc fixes:
    * Documentation expanded to mention JSON metafiles

6.85_06 Mon Dec 30 23:14:37 GMT 2013
    Bug fixes:
    * Explicitly require dynaloader before using mod2fname

6.85_05 Sun Dec 29 11:25:00 GMT 2013
    Bug fixes:
    * Export 'configure' section of prereqs when meta-spec version 2

    Doc fixes:
    * Document BUILD_REQUIRES defaults

6.85_04 Mon Dec 23 15:00:14 GMT 2013

    No changes since v6.85_03 fixing repo tags

6.85_03 Mon Dec 23 14:55:37 GMT 2013
    Bug fixes:
    * RT#91540 PREREQ_FATAL not recognised on command line

6.85_02 Tue Dec 17 10:13:28 GMT 2013
    New features:
    * Added PPM_UNINSTALL_EXEC and PPM_UNINSTALL_SCRIPT options
      to PPD generation

6.85_01 Mon Dec 16 13:15:43 GMT 2013
    Bug Fixes:
    * harden xsubpp locating loop in MM_Unix
Extract version routines into two new files

This is to make synchronisation between the CPAN distribution and the
perl core easier.

The files have different extensions to match what the CPAN distribu-
tion will have.  vutil.c is a separate compilation unit that the CPAN
dist already has.  vxs.inc will be included by vxs.xs (vxs.c is obvi-
ously alreday taken, being generated from vxs.xs).

In the perl core util.c includes vutil.c and universal.c
includes vxs.inc.
Import vutil.h from the CPAN version dist

This will be needed when we switch vutil.c over to using macros for
version functions, the way the CPAN dist does it.
vutil.c: Add preproc code specific to CPAN

The purpose is to bring the files into synch so that later version.pm
upgrades involve dropping files into place.

This requires changing vutil.h a bit to work in the core.
vxs.inc: Don’t hard-code class name

This is part of bringing perl and CPAN into synch.
vxs.inc: Add dVAR define for CPAN use

This is part of bringing perl and CPAN into synch.
vxs.inc: arg list checking for UNIVERSAL::VERSION

This brings it in line with the CPAN implementation.  It’s hard to
test this, as the tests should go in cpan/version, but the pure-Perl
implementation doesn’t check the number of arguments.
universal.c: include vutil.h

Subsequent changes to vxs.inc will require it.
vxs.inc: Import UNIVERSAL::VERSION from CPAN

No functional changes, just cosmetic (and it works with older
perls, too).

This is part of bringing perl and CPAN into synch.
[rt.cpan.org #88495] version->new str cmp bug

We shouldn’t consider ver and version to be the same class.

If ver inherits from version, ver->new should give a ver object.

This string comparison bug has only ever existed in the perl core
version of the version routines.  It was ed1db70e1224 in 5.16 that
introduced it.
vxs.inc: Integrate the CPAN version of version_new

No behaviour changes; just rearranged, and with a few extra #ifdefs.
[rt.cpan.org #88495] bad string comparison in version->qv

qv is affected, too.  A package called "ver" inheriting from version
should be able to create "ver" objects via ->qv.
vxs.inc: Disallow multiple args to XS_version_normal

Also rename the argument.

This is part of bringing perl and CPAN into synch.
Integrate the rest of CPAN’s vxs.inc

Uppercase macros instead of functions (so the CPAN version can call
its own non-core functions if need be), plus a poor man’s typemap
(VTYPECHECK).
Use VXS_ prefix for XSUB bodies in CPAN version

The names of the functions in core and in the CPAN version will con-
flict otherwise.

Since perl versions before 5.16.0 did not have XS_INTERNAL (which
could solve this problem another way, making the functions static),
it’s easier just to use different names.