Rewrite the invoke stubs to use JValue[]s.

The tests were only testing the static stubs, so extend the tests to include
non-static stubs too.

Also add just enough of an ARM disassembler to disassemble the invoke stubs.

Change-Id: If71dfb66b8b8188f9d871914f0eaf1013c9993b9
diff --git a/src/object.cc b/src/object.cc
index 2e98f4f..59fa28b 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -556,7 +556,7 @@
   return DexFile::kDexNoIndex;
 }
 
-void Method::Invoke(Thread* self, Object* receiver, byte* args, JValue* result) const {
+void Method::Invoke(Thread* self, Object* receiver, JValue* args, JValue* result) const {
   // Push a transition back into managed code onto the linked list in thread.
   CHECK_EQ(Thread::kRunnable, self->GetState());
   NativeToManagedRecord record;