[asan] fully re-implement the FakeStack (use-after-return) to make it faster and async-signal-safe. The implementation is not yet complete (see FIXMEs) but the existing tests pass.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@190588 91177308-0d34-0410-b5e6-96231b3b80d8
[asan] use xchg instead of CAS in FakeStack::Allocate (5% faster for this case)

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@190589 91177308-0d34-0410-b5e6-96231b3b80d8