New implementation of wait, notify, and notifyAll.  Uses an explicit
queue to represent the wait set instead of the implicit queue within
the monitor condition variable.
diff --git a/vm/Thread.c b/vm/Thread.c
index 2bd540d..fc200c1 100644
--- a/vm/Thread.c
+++ b/vm/Thread.c
@@ -1000,7 +1000,7 @@
     /*
      * Initialize invokeReq.
      */
-    pthread_mutex_init(&thread->invokeReq.lock, NULL);
+    dvmInitMutex(&thread->invokeReq.lock);
     pthread_cond_init(&thread->invokeReq.cv, NULL);
 
     /*
@@ -1028,6 +1028,9 @@
 
     memset(&thread->jniMonitorRefTable, 0, sizeof(thread->jniMonitorRefTable));
 
+    pthread_cond_init(&thread->waitCond, NULL);
+    dvmInitMutex(&thread->waitMutex);
+
     return true;
 }