Don't block while runnable in getReferent()

Change state before waiting on the GC, so that we can safely be
suspended, thus avoiding surprisingly obscure deadlocks.

Bug: 195336624
Test: Treehugger
Change-Id: I7c7dff8030be962195b7521aac320e90d81defd9
diff --git a/runtime/gc/reference_processor.cc b/runtime/gc/reference_processor.cc
index e34d140..12b1337 100644
--- a/runtime/gc/reference_processor.cc
+++ b/runtime/gc/reference_processor.cc
@@ -155,6 +155,7 @@
       started_trace = true;
       start_millis = MilliTime();
     }
+    ScopedThreadSuspension sts(self, ThreadState::kSuspended);
     condition_.WaitHoldingLocks(self);
   }
   if (started_trace) {