Implement ARM EHABI exception handling.

This commit implements the ARM zero-cost exception handling
support for libc++abi.
Guard the noexcept with __cplusplus version.

To allow the compilation with gcc, we can't use the
__has_feature(noexcept) to detect the existence of noexcept
keyword.  We should use __cplusplus >= 201103L instead.
swapped over to libc++abi fully. libc++ compiles, but missing link to __gxx_personality_v0 and other zero-cost exception functions.

Change-Id: I17057e103f2a80b1e7498117b71bbc9463e10fe3
Tell libc++abi that arm is zero-cost. This should no longer compiler but will tell us what functions are missing.

Change-Id: I49fa68f5a3b5f4283936e2deb35837283975cfc0
stuff

Change-Id: I812de34f2bd3ea7f855e772473a7d75694c24531
Remove all SJLJ APIs from ARM compilation by gating off new CXXABI_SJLJ macro.

Change-Id: Id0e07d85e387901da5e8a45f712a2c64a1c38c70
Make sure the assembly files are preproccessed.

Change-Id: I0d92f341caac0977811a1a29a0e99c06efb6a9a0
Add stub methods for __aeabi_unwind_cpp_pr{0,1,2}

Change-Id: I492ebb3624446c1b634a43461207c132b0f54733
Add stubs with TODOs for arm non-64 bit all over libunwind.

Much of this code is incorrect or missing, it's just enough to link at the moment.

Change-Id: Iaf2b69c2adb6121a87c40edba0c8344be6a2a3d7
Improved stubs for ARM unwinding

Instead of assuming we are using compact unwinding, which seems to have
apple specific code in it, we define a new _LIBXX_SUPPORTS_ARM_UNWIND
configuration macro, and stub out at the point where choose an unwind
method. Remove the stubs inside compact-unwind-specific code.

Change-Id: I67a40a6a08dbbd45834c78e828fcad0af82be402
First stab at unw_getcontext for arm32.

Change-Id: If1b15c5a554cb21615d647af01ff1678ac2294a2
First stab at libunwind::Registers_arm::jumpto().

Change-Id: I457f582d3e011c92e1d686f0c27e773916261829
Make unw_getcontext and Registers_arm::jumpto more similar to the 64 bit version.

Change-Id: I42ca7d38b3581dba62f64ded7ace0fc7245e0389
Provide the base of the .ARM.exidx section and the number of entries

This implements LocalAddressSpace::findUnwindSections for ARM non-64 bit.

Change-Id: I95e66ae6c361bd9453e2a6a78a5382d0986c8eba
Return true if findUnwindSections succeeds on ARM

Change-Id: I511790a4b8e777655a7ea473ca8417fbec27ac95
Correctly implement Registers_arm. Removes stub CompactUndwinder_arm code since it is not used yet and was causing compile errors.

Change-Id: I57f17db13d89efd3dd98c2cde084502a75cf17e8
getInfoFromEHABISection
Cleanups on the getInfoFromEHABISection method

Add comments, rename variables, move around code. Should
be functionally equivalent.

Change-Id: Ib4319e593b2b8483f74195a713a45c3b8707ca10
Start trying to wire-up personality functions.

Change-Id: I8712f7d89713a794925c7e4f075f653a1ca4e3f5
Ifdef unwind API for ARM, fix UnwindLevel1 to match spec, and (attempt to) fix __gxx_personality_v0 to match the ABI