More threads work.

Adds stubs (and sometimes implementations) for dalvik.system.VMStack and
java.lang.Thread native methods. There was a bug in the dalvik
thread priority setting code, where the current thread and the passed-in
thread were confused.

I've also pulled Mutex and ThreadList out into their own files, and
moved some functionality around (with the aim of having more stuff
private, especially locks).

Change-Id: Ieb0f22669cac3df44ca34f7868f8e7d4dfa09ab6
diff --git a/src/intern_table.h b/src/intern_table.h
index c9de228..fe84347 100644
--- a/src/intern_table.h
+++ b/src/intern_table.h
@@ -6,6 +6,7 @@
 #include "unordered_map.h"
 
 #include "heap.h"
+#include "mutex.h"
 #include "object.h"
 
 namespace art {
@@ -23,7 +24,6 @@
 class InternTable {
  public:
   InternTable();
-  ~InternTable();
 
   // Interns a potentially new string in the 'strong' table. (See above.)
   const String* InternStrong(int32_t utf16_length, const char* utf8_data);
@@ -59,9 +59,9 @@
   const String* Insert(Table& table, const String* s, uint32_t hash_code);
   void Remove(Table& table, const String* s, uint32_t hash_code);
 
+  mutable Mutex intern_table_lock_;
   Table strong_interns_;
   Table weak_interns_;
-  Mutex* intern_table_lock_;
 };
 
 }  // namespace art