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 /.

$libsearchpth is also introduced to track the absolute paths of
found libraries. $libpath continues to list the relative paths to
pass to -L.
Pass the --sysroot flag to the compiler, if -Dsysroot= is used.

This is a preparation step for better Cross-Compiling support.
Use the pure "sysroot" value from $Config to lookup sysroot path.
Useful in cross-compiling.
Rollback sysrootflag idea, add --sysroot to ccflags etc so that make in ExtUtils::MakeMaker etc will use it
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
Set appropriate flags for linux or linux-like 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
Setup $^O to be the target os when building Core.
This allows the correct hints files to be loaded when building modules
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
Hints file for android cross-compiling.

The hints file names for cross-compiling (currently) need to match the prefix of the cross-compiler used.
Fix accidental bashisms introduced into Configure
Force removal of existing files in host/ dir when building new miniperl (cross-compiling)
Run all the miniperl calls remotely, not via RUN
Fix Makefile so that host dir is removed in make distclean
Remve extra "was file copied" check using run-ssh, this doesn't seem to be of much use.
Also 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)
Cope with osnames that look like "*linux*" which happens when cross-compiling.
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.