Make ClassLinker set Class::super_class_ plus test and build improvements

Create placeholder ClassLinker::java_lang_Object_ for use a
super-class of java_lang_Class_ instances.

	src/class_linker.cc
	src/class_linker.h

Expand ClassLinker FindClass test to verify Class::GetSuperClass

	src/class_linker_test.cc

Move DexFile::Load* methods to ClassLinker so they can reference
java_lang_Object_ and java_lang_Class_

	src/class_linker.cc
	src/class_linker.h
	src/dex_file.cc
	src/dex_file.h

Move corresponding Load tests from class_linker_test to dex_file_test

	src/class_linker_test.cc
	src/dex_file_test.cc

Tracking change to object_test to use ClassLinker::Load* methods

	src/object_test.cc

Move base64 to new src/common_test.h for reuse accross tests. Add
missing example source for MyClass dex.

	src/common_test.h
	src/class_linker_test.cc
	src/dex_file_test.cc
	src/object_test.cc

Change Heap::AllocClass to take DexFile argument

	src/heap.h

Remove Method::dex_file_ in favor of using Method::GetClass::GetDexFile

	src/object.cc
	src/object.h

Made a few more RawDexFile methods const

	src/raw_dex_file.cc
	src/raw_dex_file.h

Add convenience targets for build-art and test-art-host

	Android.mk

Drop use of _LOCAL_ from make variants, which isn't the appropriate
here, where we aren't differentiating between LOCAL_ and PRIVATE_.
Avoid redefinition of variables based on now removed
LIBART_TARGET_ARCH and TEST_TARGET_ARCH to support phony targets in
Android.mk

	build/Android.aexec.host.mk
	build/Android.aexec.mk
	build/Android.common.mk
	build/Android.libart.host.mk
	build/Android.libart.mk
	build/Android.test.host.mk
	build/Android.test.mk

Change-Id: I84ce2b7a2b4e37799d4d782b97c02d5e97ac081c
diff --git a/src/class_linker.h b/src/class_linker.h
index 89fd8f7..3796dc2 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -30,6 +30,10 @@
     return FindClass(descriptor, NULL, NULL);
   }
 
+  bool LoadClass(const char* descriptor, Class* klass);
+
+  bool LoadClass(const RawDexFile::ClassDef& class_def, Class* klass);
+
   Class* FindPrimitiveClass(JType type);
 
   bool InitializeClass(Class* klass);
@@ -47,6 +51,12 @@
  private:
   Class* CreatePrimitiveClass(JType type, const char* descriptor);
 
+  void LoadInterfaces(const RawDexFile::ClassDef& class_def, Class *klass);
+
+  void LoadField(Class* klass, const RawDexFile::Field& src, Field* dst);
+
+  void LoadMethod(Class* klass, const RawDexFile::Method& src, Method* dst);
+
   // Inserts a class into the class table.  Returns true if the class
   // was inserted.
   bool InsertClass(Class* klass);
@@ -104,6 +114,7 @@
   Class* primitive_long_;
   Class* primitive_void_;
 
+  Class* java_lang_Object_;
   Class* java_lang_Class_;
 
   DISALLOW_COPY_AND_ASSIGN(ClassLinker);