add Intel C++ Compiler for Win32 support

-most fixes involve code detecting Perl on VC, and changing it to ICC
 is another kind of VC, but ICC's version isn't this "other kind of VC"'s
 version number, call the partner VC to find out the "VC version number"
 of ICC

not yet done
-no Intel C specific optimization flags
-long doubles and C99
-ccversion behavior might not be ideal/rethink
Introduce sysroot variable to Configure

This is borrowed from gcc and allows us to indicate the logical root
directory for headers and libraries, under which all -I and -L are
searched for. This patch adjusts Configure to search under $sysroot
(if supplied) for headers and libraries, instead of /.

--sysroot is added to ccflags and friends so that make in
ExtUtils::MakeMaker, and other extensions, will use it.

$libsearchpth is also introduced to track the absolute paths of
found libraries. $libpath continues to list the relative paths to
pass to -L.
Revamp usecrosscompile section.
Use sysroot for libpath/incpath if set.
Set to/from/run scripts if targethost is passed, regardless of whether we are cross compiling
Configure: If using targetarch, the computed binaries should stick
Set appropriate flags for linux or linux-like systems.

This means that osnames that look like *linux*, like linux-androideabi
or linux-gnueabihf are treated like linux systems.
Add missing $run prefix to some Configure tests
Stop using $run for anything other than testing compiled tests in Configure.

When cross-compiling we want to run miniperl etc on the compile host, not the test target
No xconfig.h is produced when cross-compiling, we have a normal config.h
Stop using Config{run} to check the version of (mini)perl we are running
Build host miniperl and generate_uudmap binaries when cross compiling, for local use
Run all the miniperl calls remotely, not via RUN
Configure: Remove "was file copied" check using run-ssh

This doesn't seem to be of much use.
Introduce $targetport to allow running on a non-standard ssh port

Such as when using user networking on qemu and redirecting a local port
to the emulator ssh
Re-organise the creation of Config.pm to allow $^O to be "osname" from config.sh, instead of miniperl's $^O.

This is necessary when cross-compiliing, as we use a host (mini)perl to run configpm for the target arch.
add an escape for when targethost is not defined but usecrosscompile is.
fix the ability to use targethost when defined.
Update AUTHORS and MANIFEST to appease test_porting
Use the system perl for RUN_PERL, if we are cross compiling, and we found one.

Note we can only substitute the system perl for scripts that do not require Config
as it complains about non-matching Perl versions.
write_buildcustomize.pl: Setup $^O to be the target os when building Core.

This allows the correct hints files to be loaded when building modules
We do this by giving write_buildcustomize.pl a 'osname' parameter.

This means that write_buildcustomize.pl no longer depends on
Config to get osname, which eliminates a circular dependency
in the Makefiles.
Makefile.SH: Updated the lib/buildcustomize.pl rule for cross-compilation builds