[Sanitizer] External symbolizer refactoring: split protocol for communicating with
llvm-symbolizer binary and external process handling into separate classes.

No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@201150 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] Use system unwinder in signal handlers on Android.

Because of the way Bionic sets up signal stack frames, libc unwinder is unable
to step through it, resulting in broken SEGV stack traces.

Luckily, libcorkscrew.so on Android implements an unwinder that can start with
a signal context, thus sidestepping the issue.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@201151 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] Fix build.


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