Increase use of ScopedJniThreadState.

Move the routines for changing Object* to jobject and vice-versa
(AddLocalReference and Decode) to ScopedJniThreadState to enforce use of
Object*s in the Runnable thread state. In the Runnable thread state
suspension is necessary before GC can take place.

Reduce use of const ClassLoader* as the code bottoms out in FindClass
and with a field assignment where the const is cast away (ie if we're
not going to enforce the const-ness we shouldn't pretend it is).

Refactor the Thread::Attach API so that we're not handling raw Objects on
unattached threads.

Remove some unreachable code.

Change-Id: I0fa969f49ee6a8f10752af74a6b0e04d46b4cd97
diff --git a/src/monitor_android.cc b/src/monitor_android.cc
index dc77b6d..94f86e8 100644
--- a/src/monitor_android.cc
+++ b/src/monitor_android.cc
@@ -69,7 +69,8 @@
   cp = EventLogWriteInt(cp, Monitor::IsSensitiveThread());
 
   // Emit self thread name string, <= 37 bytes.
-  std::string thread_name(self->GetThreadName()->ToModifiedUtf8());
+  std::string thread_name;
+  self->GetThreadName(thread_name);
   cp = EventLogWriteString(cp, thread_name.c_str(), thread_name.size());
 
   // Emit the wait time, 5 bytes.