android: Add locale support.

This is based on the Bionic <ctype.h> declarations. Note that
unfortunately, the _ctype_ table exposed by this header has a bug
so a fixed copy is included here instead.

See src/support/android/locale_android.cpp for details.
Fix GLibc-specific check.
Fallback to locale("C")

Android's newlocale() return null for anything other than "", "C",
and "POSIX", fallback to "C" to allow more tests to run and uncover
other issues.
std::terminate() should not specify "throw ()" in C++ 98.
Fix gabi++/stlport/llvm-libc++ build
Fix libc++ compiler error when calling std::feof()

The following functions are "macro" in bionic's stdio.h and also
defined in cstdio's std::  getchar, putchar, clearerr, feof, ferror

Undef them and re-define as inlined functions otherwise use of
std::feof, for example, break compilation.

See b.android.com/66668 and b.android.com/36496
Remove gcc warning about redefinition of putchar with different visibility

In NDK bionic's stdio.h, putchar appears as both a function prototype and a macro
(later in the same header).  Because it's defined as a macro, libc++ replaces
it with a function but with *different* visibility.  GCC 4.x complains [-Wattributes]

   include/stdio.h:236:5: warning: conflicts with previous declaration here [-Wattributes]
   int  putchar(int);

Undefine putchar to avoid redefinition, and putchar does exist in libc.so
Fix locale stuff for LP64
Add enough symlink to rename file/path with '=' (replace it with 'EQ')

ndk-build dislikes file path with '='
Fix tests for Android