Fix "holding ThreadListLock while doing condition variable wait on HeapLock"

Now we release the ThreadListLock if we are going to wait on the heap condition variable in WaitForConcurrentGC.

Change-Id: I506c8ff93f4b79ee74c98b7936a7d155be833b90
diff --git a/src/thread.h b/src/thread.h
index c674ded..ad07498 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -651,6 +651,7 @@
   EntryPoints entrypoints_;
 
  private:
+  friend class ScopedThreadListLockReleaser;
   DISALLOW_COPY_AND_ASSIGN(Thread);
 };