Invoke <clinit> where necessary.

This lets us run Long.toString and friends for integral types, though
we'll need a libcore hack to avoid ThreadLocals for the time being.

Change-Id: I04bba5914f1b7d00e4917922e65b9c27302a59ff
diff --git a/src/object.h b/src/object.h
index 9b3bf88..8504612 100644
--- a/src/object.h
+++ b/src/object.h
@@ -602,7 +602,7 @@
 class Method : public AccessibleObject {
  public:
   // An function that invokes a method with an array of its arguments.
-  typedef void InvokeStub(Method* method,
+  typedef void InvokeStub(const Method* method,
                           Object* obj,
                           Thread* thread,
                           byte* args,
@@ -833,6 +833,8 @@
   // Size in bytes of the return value
   size_t ReturnSize() const;
 
+  void Invoke(Thread* self, Object* receiver, byte* args, JValue* result) const;
+
   const ByteArray* GetCodeArray() const {
     return GetFieldPtr<const ByteArray*>(OFFSET_OF_OBJECT_MEMBER(Method, code_array_), false);
   }