Configure: Better guesses for usrinc and friends on some compilers

It turns out that we had some much more accurate way of getting
usrinc, libpth and incpth -- we can just ask the compiler.  This
was stashed away and only used when cross-compiling; what this
commit does is move things around so that it's also used in the
more common case.
Configure: Add $cppflags to cppstdin
Configure: Change a use of cc to $cc
Configure: use incpth, not usrinc, to search for headers.

incpth is all the paths that will eventually be used by the compiler to
search for headers; usrinc is the first of those paths to have all three
of errno.h, stdio.h, and time.h inside.
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.

Currently this is only done if compiling with some variant of gcc
or g++.
Configure, sysroot: add --sysroot to cppflags
Configure, sysroot: Update defaults to use $sysroot
Configure, sysroot: failing to guess usrinc needn't be fatal

Previously, if we failed to guess usrinc, incpth, or libpth and were
cross-compiling, Configure would've bailed out immediately.  This commit
makes it more lenient if using -Dsysroot; in case of failure it will now
warn, but Configure will continue as usual; this is because the defaults
for those variables will now use sysroot, so they have a higher chance
of being accurate.
perldelta for -Dsysroot