MakeMaker: Groundwork for 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 ExtUtils::MM_Unix about d_libname_unique.  When
defined, it signals MakeMaker to rename the .so files to something
"unique" -- so for example, Hash/Util/Util.so becomes
Hash/Util/Perl_Hash_Util.so.
Teach XSLoader about d_libname_unique
Teach DynaLoader about d_libname_unique
android hints: Always define d_libname_unique
t/op/getpid.t: Silence undef warnings if getconf doesn't exist.

If a platform has getppid() but not getconf and we're building a
threaded perl, this file would've shown undef warnings, although
no tests were affected.
pod/perlport.pod: Note which functions are not available on Android
t/op/threads-dirh.t: Only test telldir and seekdir if they are available
doio.c: Two variables only need to be available if -DUSE_SHELL_ALWAYS is not true
sv.c, Perl_dirp_dup: Skip the fchdir sections if telldir and seekdir are not defined
hints/linux-androideabi.sh: getservent_r() is a partial stub, mark it as undefined to avoid issues with threads
Perl::OStype: Report Android as a Unix-like OS.
Sys::Syslog: handle getprotobyn{ame,umber} not being available
cpan/Socket/Socket.pm: Protect against getprotobyname() not being available
cpan/IO-Compress/t/050interop-gzip.t: Call gzip with "-d -c" instead of "-dc" on Android
Net::Domain: Stop domainname() from giving out warnings in android
cpan/autodie/t/open.t: Work around android only having a built-in true
t/op/exec.t: Skip a test under -DUSE_SHELL_ALWAYS
t/lib/warnings/9uninit: Skip two tests under -DUSE_SHELL_ALWAYS
t/io/pipe.t: Skip test under -DUSE_SHELL_ALWAYS
ext/IPC-Open3/t/IPC-Open3.t: TODO a test under -DUSE_SHELL_ALWAYS