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
Fix bad merging of patch in 0006

Change-Id: I766ba6f0c7dcc561b8fe304d993166ba3567ef68
Add testit_android so we can run tests

Change-Id: I86aa70743da7eeaf0ce0daeb803db5b851c08ab8
Fix the aligned_storage.pass unit test by updating its expectations.

Change-Id: I32a130ef0dd2ee35dcecf82dfd5cd27da1ae1b94
Make sizeof() expectation platform-independent and use alignof().

Change-Id: Iec532c84493ba63867fe7ac188de6035440b9c6d
Fix test that changed in #59.

The lhs of that comparison got lost, but just adding it back looks
strange:

  sizeof(T1) ==
      ((sizeof(T1) + alignof(T1) - 1) / alignof(T1)) * alignof(T1)

This is equivalent to alignof(T1) < sizeof(T1), which doesn't seem
like a useful thing to check.  Instead, replace the original
`sizeof(T1) == 32` with `sizeof(T1) == 16 + alignof(T1)` instead.

Change-Id: I6a58b2614ce1e7856d439d820f7f197386730cd3
Disable locale-specific re.alg.match tests since the Android NDK does
not support locales.

Change-Id: I80d55e6d2392327a393f4ce7179cbb5aff5de601
Disable locale-specific tests in re.alg.search.

Change-Id: Id180d78ff6530227e5a2ba7ad0746a7b79562edb