Check-cast, instance-of, misc fixes

Support for check-cast and instanceof (largely untested).  Added a bunch of
helper stubs, a debugging option to show the method name if we try to branch
to an uncompiled method, new tests and a missing call to reset the compiler's
arena storage.

Change-Id: I933ad1fbdbca110f92c9201cae2353bf4862a8ac
diff --git a/src/thread.h b/src/thread.h
index a527deb..b255d6b 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -218,9 +218,10 @@
   Object* (*pGetObjStatic)(uint32_t, const Method*);
   void (*pSetObjStatic)(uint32_t, const Method*, Object*);
   void (*pCanPutArrayElementFromCode)(const Class*, const Class*);
-  int (*pInstanceofNonTrivialFromCode) (const Class*, const Class*);
+  bool (*pInstanceofNonTrivialFromCode) (const Object*, const Class*);
+  void (*pCheckCastFromCode) (const Class*, const Class*);
   Method* (*pFindInterfaceMethodInCache)(Class*, uint32_t, const Method*, struct DvmDex*);
-  bool (*pUnlockObjectFromCode)(Thread*, Object*);
+  void (*pUnlockObjectFromCode)(Thread*, Object*);
   void (*pLockObjectFromCode)(Thread*, Object*);
   void (*pThrowException)(Thread*, Throwable*);
   void (*pHandleFillArrayDataFromCode)(Array*, const uint16_t*);