Heap allocate class supporting arrays for fields, methods, interfaces

Other supporting changes
- fix ref to reflect
- add shared array_interfaces_ array_iftable_
- fixed issue with loaded class overwriting special object_size_ cases
- added Class::interfaces_idx to avoid reuse of interfaces_ for non-Object data

Change-Id: Ibcbeee6ac001baefdbba9a194123b3c6fe488f1f
diff --git a/src/class_linker.h b/src/class_linker.h
index ee56595..622eaea 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -161,8 +161,8 @@
 
   Class* java_lang_Class_;
   Class* java_lang_Object_;
-  Class* java_lang_ref_Field_;
-  Class* java_lang_ref_Method_;
+  Class* java_lang_reflect_Field_;
+  Class* java_lang_reflect_Method_;
   Class* java_lang_Cloneable_;
   Class* java_io_Serializable_;
   Class* java_lang_String_;
@@ -177,8 +177,14 @@
   Class* primitive_long_;
   Class* primitive_void_;
 
-  Class* object_array_class_;
   Class* char_array_class_;
+  Class* class_array_class_;
+  Class* object_array_class_;
+  Class* field_array_class_;
+  Class* method_array_class_;
+
+  ObjectArray* array_interfaces_;
+  InterfaceEntry* array_iftable_;
 
   FRIEND_TEST(ClassLinkerTest, ProtoCompare);
   FRIEND_TEST(ClassLinkerTest, ProtoCompare2);