Remove the useless "suspend count already zero" message for new threads.

We can actually detect the expected case of this warning ourselves, and
not emit it. Then we can upgrade the WARNING to a FATAL.

I also tripped over the fact that the operator<< for Thread::State was out
of date, so I've moved the Thread enums up to namespace scope so the script
can automatically generate correct operator<< implementations for us. (All
the high-numbered thread states have been off by one for a couple of weeks.)

Change-Id: I5de573d33d641e5a3cba87b370e9620c8c66e633
diff --git a/src/jni_internal.cc b/src/jni_internal.cc
index 6ac36bd..26f069c 100644
--- a/src/jni_internal.cc
+++ b/src/jni_internal.cc
@@ -586,7 +586,7 @@
     while (jni_on_load_result_ == kPending) {
       VLOG(jni) << "[" << *self << " waiting for \"" << path_ << "\" "
                 << "JNI_OnLoad...]";
-      ScopedThreadStateChange tsc(self, Thread::kVmWait);
+      ScopedThreadStateChange tsc(self, kVmWait);
       jni_on_load_cond_.Wait(jni_on_load_lock_);
     }
 
@@ -2847,7 +2847,7 @@
   Thread* self = Thread::Current();
   void* handle = NULL;
   {
-    ScopedThreadStateChange tsc(self, Thread::kVmWait);
+    ScopedThreadStateChange tsc(self, kVmWait);
     handle = dlopen(path.empty() ? NULL : path.c_str(), RTLD_LAZY);
   }
 
@@ -2890,7 +2890,7 @@
 
     int version = 0;
     {
-      ScopedThreadStateChange tsc(self, Thread::kNative);
+      ScopedThreadStateChange tsc(self, kNative);
       VLOG(jni) << "[Calling JNI_OnLoad in \"" << path << "\"]";
       version = (*jni_on_load)(this, NULL);
     }