implement atomics with gcc intrinsics

Gcc after 4.7 provides atomic builtins[1]. Use these instead of adding
yet-another-assembly port for Aarch64 (64-bit ARM). This patch enables
succesfully building and running atomicops unittest on Aarch64.

This patch enables using gcc builtins only when no assembly
implementation is provided. But as a quick check, atomicops_unittest
and rest of testsuite passes with atomicops-internals-gcc also
ARMv7 and X86_64 if the ifdef in atomicops is adjusted to prefer
the generic implementation.

[1] http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html
chmod -x configure.ac

Because configure.ac is not really executable. And because it
interferes with tab completion of configure.
allow asking for gcc atomics on all platforms

I.e. by doing ./configure CPPFLAGS=-DTCMALLOC_PREFER_GCC_ATOMICS
removed irrelevant comment
debugallocation: fix bus error on mipsel-linux platform when enable use_malloc_page_fence

Fix below "BUS ERROR" issue:

a0 hold start address of memory block allocated by DebugAllocate in debugallocation.cc

gdb) info registers
          zero       at       v0       v1       a0       a1       a2       a3
 R0   00000000 10008700 772f62a0 00084d40 766dcfef 7fb5f420 00000000 004b4dd8
            t0       t1       t2       t3       t4       t5       t6       t7
 R8   7713c1a0 7712dbc0 ffffffff 777bc000 f0000000 00000001 00000000 00403d10
            s0       s1       s2       s3       s4       s5       s6       s7
 R16  7fb5ff1c 00401b9c 77050020 7fb5fb18 00000000 004cb008 004ca748 ffffffff
            t8       t9       k0       k1       gp       sp       s8       ra
 R24  0000002f 771adcd4 00000000 00000000 771f4140 7fb5f408 7fb5f430 771add6c
            sr       lo       hi      bad    cause       pc
      00008713 0000e9fe 00000334 766dcff7 00800010 771adcfc
           fsr      fir
      00000004 00000000

(gdb) disassemble
Dump of assembler code for function _ZNSs4_Rep10_M_disposeERKSaIcE:
   0x771adcd4 <+0>:     lui     gp,0x4
   0x771adcd8 <+4>:     addiu   gp,gp,25708
   0x771adcdc <+8>:     addu    gp,gp,t9
   0x771adce0 <+12>:    lw      v0,-28696(gp)
   0x771adce4 <+16>:    beq     a0,v0,0x771add38 <_ZNSs4_Rep10_M_disposeERKSaIcE+100>
   0x771adce8 <+20>:    nop
   0x771adcec <+24>:    lw      v0,-30356(gp)
   0x771adcf0 <+28>:    beqzl   v0,0x771add1c <_ZNSs4_Rep10_M_disposeERKSaIcE+72>
   0x771adcf4 <+32>:    lw      v0,8(a0)
   0x771adcf8 <+36>:    sync
=> 0x771adcfc <+40>:    ll      v0,8(a0)
   0x771add00 <+44>:    addiu   at,v0,-1
   0x771add04 <+48>:    sc      at,8(a0)
   0x771add08 <+52>:    beqz    at,0x771adcfc <_ZNSs4_Rep10_M_disposeERKSaIcE+40>
   0x771add0c <+56>:    nop
   0x771add10 <+60>:    sync
   0x771add14 <+64>:    b       0x771add24 <_ZNSs4_Rep10_M_disposeERKSaIcE+80>
   0x771add18 <+68>:    nop
   0x771add1c <+72>:    addiu   v1,v0,-1
   0x771add20 <+76>:    sw      v1,8(a0)
   0x771add24 <+80>:    bgtz    v0,0x771add38 <_ZNSs4_Rep10_M_disposeERKSaIcE+100>
   0x771add28 <+84>:    nop
   0x771add2c <+88>:    lw      t9,-27072(gp)
   0x771add30 <+92>:    jr      t9
   0x771add34 <+96>:    nop
   0x771add38 <+100>:   jr      ra
   0x771add3c <+104>:   nop
End of assembler dump.

ll instruction manual:
Load Linked:
Loads the destination register with the contents of the word
that is at the memory location. This instruction implicity performs
a SYNC operation; all loads and stores to shared memory fetched prior
to the ll must access memory before the ll, and loads and stores to
shared memory fetched subsequent to the ll must access memory after ll.
Load Linked and Store Conditional can be use to automatically update
memory locations. *This instruction is not valid in the mips1 architectures.
The machine signals an address exception when the effective address is not
divisible by four.

Signed-off-by: Wang YanQing <udknight@gmail.com>
Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>
[alk@tut.by: removed addition of unused #include]
unbreak make dist
issue-605: avoid compilation errors if pthread_key_t is pointer

Which seems to be the case on later cygwin
issue-604: implement runtime-selectable stacktrace capturing

We're now building all supported stacktrace capturing methods. And
there's now a way to select at runtime which method is used.
issue-525: warn user on lack of libunwind but don't fail

Because we now have access to other backtrace capturing method(s) at
runtime.