Fix warnings, add missing return, and make compile on llvm 3.4.

Not sure why the nested template in a local struct is disallowed on
clang 3.4, but the simple workaround is to hoist the type out of hte
local scope into the file namespace.

The missing return also fixes the SIGILL caused during exception
handling.

Change-Id: I825577409bdd33c410368de666ba69fe1bb2e21e
Add ehabi flags when using llvm-3.4.

llvm-3.3 doesn't support emitting ehabi descriptor tables.
If using a bleeding edge 3.4 toolchain, add flags for these descriptors.

Change-Id: I8f1996035465dc6ca795c0cec0c462a534c28165
Remove Bsymbolic and change nostdblib to nodefaultlibs.

Bsymbolic causes problems with exception handling as well as new
overriding. nostdlib is too big of a hammer. nodefaultlibs is better.

Change-Id: I14bc6b9a0d902e8c93589beb3439dd90db945b39
Fix warning when including both ctype and xlocale

Change-Id: Ieee84503445770de4dd2a2004282c5c5056f790f
Rename fields so it's clear when we are looking at the index table versus exception table.

Change-Id: I024b94d7675f6209f2f7b1b74e413b5bc8561410
redo table decoding logic to match ehabi. the previous code looked like dwarf?

Change-Id: Ia65503e94c7a91c100482613206f1811b7fc5b8d
Merge pull request #27 from awong-dev/ehabi-descriptor

Ehabi descriptor