Pull attribute macros from `libunwind_i.h' to new header `compiler.h'

Pull attribute macros from `libunwind_i.h' to new header `compiler.h',
to allow the macros to also be used in the tests.
Remove unneeded `atomic_ops.h' inclusion in `dwarf.h'
Use GCC __BIGGEST_ALIGNMENT__ for sos-pool MAX_ALIGN

Use the __BIGGEST_ALIGNMENT__ macro provided by GCC for sos_alloc()
allocation alignment. The macro gives ``the largest alignment ever used
for any data type on the target machine you are compiling for.''

__BIGGEST_ALIGNMENT__ also has some other nice properties, e.g. it is
power-of-two on all architectures (note that on i386, sizeof(long
double) = 12), and on some architectures (e.g. SuperH) the alignment
requirement can be lower than sizeof(long double).
Workaround non-power-of-two i386 sizeof(long double) in src/mi/mempool.c

To ensure that we return properly aligned pointers from sos_alloc(),
MAX_ALIGN must be a power-of-two. On i386 the power-of-two assumption
fails as sizeof(long double) = 12. Fix this by rounding up to 16.
Align `sos_memory' to MAX_ALIGN

We give aligned pointers from the `sos_memory' array, so any non-aligned
bytes are only wasted.
Simplify `sos_alloc()' implementation

Instead of maintaining a pointer to the `sos_memory' array, maintain an
index that tells the next free position. When atomic operations are
available, the allocation boils down to a single fetch-and-add
operation.
Remove unneeded `cmpxchg_ptr()' from include/libunwind_i.h

With the new `sos_alloc()' implementation in place, we no longer use
`cmpxchg_ptr()' anywhere.
Use __sync builtin atomics on all architectures if available

We can use the __sync builtin atomics also on other architectures than
IA64. GCC 4.7 documentation notes that these builtins are ``legacy'' --
adding support for the newer GCC __atomic atomics should be fairly easy.
Invert tdep_init() flag logic

Invert the flag that signals that tdep_init() was called, to move the
symbol from data to BSS.
Apply UNW_ALIGN more in src/mi/mempool.c

Apply UNW_ALIGN in a few places in src/mi/mempool.c that I missed in
commit c2f757418 ("Rename and share `ALIGN' macro from
_UCD_internal.h").
IA64: avoid -Wunused-but-set-variable in src/ia64/init.h

In file included from src/ia64/Ginit_remote.c:26:0:
src/ia64/init.h: In function 'common_init':
src/ia64/init.h:32:12: warning: variable 'natp' set but not used [-Wunused-but-set-variable]
Remove unused src/x86_64/Lis_signal_frame.c
PPC: remove unused `PAGE_START' macro from Ginit.c
HPPA: properly check dwarf_get() return value in unw_step()
HPPA: kludge out unused variable in unw_get_save_loc() stub
Default to non-verbose mode in Ltest-cxx-exceptions
Clear out `ip' to avoid -Wuninitialized warning in tests/test-coredump-unwind.c

This one is for architectures that we have not specifically added
support for in `tests/test-coredump-unwind.c'.

tests/test-coredump-unwind.c: In function 'handle_sigsegv':
test-coredump-unwind.c:238:10: warning: 'ip' is used uninitialized in this function [-Wuninitialized]
Avoid -Wunused-value warning in tests/Gia64-test-stack.c

tests/Gia64-test-stack.c: In function 'do_unwind_tests':
tests/Gia64-test-stack.c:91: warning: value computed is not used
Workaround volatileness warning in tests/ia64-test-setjmp.c

tests/ia64-test-setjmp.c:76: warning: function return types not compatible due to 'volatile'
Annotate potentially unused variable in tests/Gtest-bt.c

tests/Gtest-bt.c: In function 'sighandler':
tests/Gtest-bt.c:158:15: warning: unused variable 'uc' [-Wunused-variable]