Add atomic helper functions for arm.

1. Implement some gcc __sync_* builtins for compatibility

See http://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/_005f_005fsync-Builtins.html
Note that only 4 bytes operation is supported now.
The reference implementation: AOSP/system/core/include/cutils/atomic-arm.h

2. Alias __aeabi_fcmpun to __unordsf2.

Change-Id: Id44293824b9011876e22dfdefc7b241dfb47e89d
Move file for building __sync_* intrinsics.

This patch https://android-review.googlesource.com/#/c/60241/ added
some __sync_* builtins for compatibility. However, it didn't been compiled
into output.

I move this file to follow compiler-rt code layout rule. All codes under
lib/<target>/ should only have assembly. Also, That is why it didn't be
built up.

This is necessary for NDK tests.

Change-Id: I1454e432ab3768f182d1307e4d6bb5acad45c849
Add __sync_* atomic builtins for other type width than 4.

We define these unsupport builtins with error report. Otherwise, we will
get undefined references since GCC and Clang all assume they exist.

This also fixes NDK test issue41297-atomic-64bit when we use compiler-rt
instead of libgcc.

For more info:
http://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/_005f_005fsync-Builtins.html
https://android-review.googlesource.com/#/c/59640

Change-Id: If6db0a43c91297f51659c46a362e0d9dd0fc95d6
Implement __sync_lock_test_and_set_4.

Change-Id: Ib986df235bd8695ee206880c2c51e33a424912db
Misc fixes for compiler_rt

1. Exclude lib/atomic-arm.c when building compiler_rt with clang.
   The file is to implement intrinsics generated by gcc
2. Exclude lib/atomic.c when building compiler_rt with gcc which
   has different sets of atomic intrinsics
3. Expand() logbl() as logb() because logbl doesn't exist in Android
   until API18, and "long double" is the same as "double"

Change-Id: I59921910a48f77e2e5f5da584a95cc64e6facf3f