Fix abort regression.

Change https://googleplex-android-review.googlesource.com/#/c/249463/ set a
boolean prior to testing it meaning that all aborts were seen as recursive and
no meaningful log information was given.

Also a fix related to https://googleplex-android-review.googlesource.com/293665
where we were attempting to dump other threads stacks during aborting even
though those threads weren't suspended.

Change-Id: I1f848512c5e380529579db3d16bb8f5ddda36ad3
diff --git a/src/runtime.cc b/src/runtime.cc
index 23a7309..9661f50 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -147,11 +147,11 @@
 
 struct AbortState {
   void Dump(std::ostream& os) {
-    if (gAborting) {
+    if (gAborting > 1) {
       os << "Runtime aborting --- recursively, so no thread-specific detail!\n";
       return;
     }
-    gAborting = true;
+    gAborting++;
     os << "Runtime aborting...\n";
     if (Runtime::Current() == NULL) {
       os << "(Runtime does not yet exist!)\n";
@@ -193,7 +193,7 @@
 };
 
 void Runtime::Abort() {
-  gAborting = true;  // set before taking any locks
+  gAborting++;  // set before taking any locks
 
   // Ensure that we don't have multiple threads trying to abort at once,
   // which would result in significantly worse diagnostics.