These changess improve ASan support for swapcontext() and friends mainly
focusing on eliminating false positives caused by throwing and catching
exceptions when on a custom user stack.
This is achieved by:
- Making swapcontext() and getcontext() fill ucontext_t::uc_stack with proper
values.
- Adding ability to AsanThread to change current stack (in an async-safe way).
Some of the things that are still not fully supported:
- swapcontext() and fake stacks
- changing context from signal handlers
- changing context using longjmp()
- final context change via ucontext_t::uc_link
initialize these just in case (with =0); same below.