Directory restructuring of object.h

Break object.h into constituent files.
Reduce number of #includes in other GC header files.
Introduce -inl.h files to avoid mirror files #include-ing each other.
Check invariants of verifier RegTypes for all constructors.

Change-Id: Iecf1171c02910ac152d52947330ef456df4043bc
diff --git a/src/well_known_classes.h b/src/well_known_classes.h
index 10afca9..92a207a 100644
--- a/src/well_known_classes.h
+++ b/src/well_known_classes.h
@@ -21,8 +21,9 @@
 #include "jni.h"
 
 namespace art {
-
+namespace mirror {
 class Class;
+}  // namespace mirror
 
 // Various classes used in JNI. We cache them so we don't have to keep looking
 // them up. Similar to libcore's JniConstants (except there's no overlap, so
@@ -33,7 +34,7 @@
   static void Init(JNIEnv* env);  // Run before native methods are registered.
   static void LateInit(JNIEnv* env);  // Run after native methods are registered.
 
-  static Class* ToClass(jclass global_jclass)
+  static mirror::Class* ToClass(jclass global_jclass)
       SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
 
   static jclass com_android_dex_Dex;