fix GCC version detect for platforms other than X86/X64

[alk@tut.by: commented why we're disabling __thread not just for x86]

Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>
eliminated gcc warning on __thread configure snippet

gcc complained about lack of matching ' in code that force-fails
__thread detection on mingw
issue-548: pass -fno-builtin to compiler for unittests

Because clang doesn't understand -fno-builtin-malloc and friends. And
otherwise new/delete pairs get optimized away causing our tests that
expect hooks to be called to fail.
issue-581: avoid destructing DebugMallocImplementation

Because otherwise destructor might be invoked well before other places
that might touch malloc extension instance.

We're using placement new to initialize it and pass pointer to
MallocExtension::Register. Which ensures that destructor for it is
never run.

Based on idea suggested by Andrew C. Morrow.
issue-{66,547}: use signal's ucontext when unwinding backtrace

In issue-66 (and readme) it is pointed out that sometimes there are
some issues grabbing backtrace across signal handler boundary.

This code attempts to fix it by grabbing backtrace from signal's
ucontext which clearly does not include signal handler boundary.

We're using "feature" of libunwind that for some important platforms
libunwind's context is same as libc's ucontext_t which is given to us
as part of calling signal handler.
issue-565: don't pollute global namespace with thread lister API

Instead those functions that are original taken from google's "base"
code now have prefix TCMalloc_. So that they don't conflict with other
google's libraries having same functions.
Merge remote-tracking branch 'google/master' into google