Rewrite unwind thread handling.

This new version doesn't require any specialized thread
implementation, it uses the Current implementation to do its job.
In addition, it runs much faster when multiple threads are trying
to unwind at the same time since the global signal lock is held for
only a small amount of time. Even running through the threads one at
a time should be faster since it no longer requires two passes through
the unwound stacks.

The new code now allows multiple simultaneous unwinds of the
same thread.

Finally, add the ability to unwind from a ucontext_t passed in. This
functionality doesn't work for remote unwinds yet.

Change-Id: I4d181d7ca5ffd2acfd1686e668e6d21e36b425cb
Merge "Rewrite unwind thread handling."
Fix mac build.

Forward declare ucontext_t so that it's not necessary for ucontext.h
to be included in the global header.

Change-Id: Ic13677dd572ab1acd927f0a17b284f9b417a642f
Merge "Fix mac build."
Fix ucontext_t forward declare for mac.

Change-Id: I30470f5cc25553dee25d4858f64ec5af13aa20c9
Merge "Fix ucontext_t forward declare for mac."
Only include ucontext.h when necessary.

Change-Id: I29014f6c6b82e0a9797e5d76147b3c4e3d82a7f5
Merge "Only include ucontext.h when necessary."
Remove declaration of unused static variable

The declaration is useless and triggers a warning with clang 3.5 (in
code that's built with -Werror)

Change-Id: I8fc42178df264509dcce6e1f1ba318bf849307e3
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Merge "Remove declaration of unused static variable"
auto-merger: merge in from aosp/master