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/object.cc b/src/object.cc
index 7c28d76..d897c52 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -69,9 +69,9 @@
 }
 
 bool Method::HasSameArgumentTypes(const Method* that) const {
-  const RawDexFile* raw1 = this->dex_file_->GetRaw();
+  const RawDexFile* raw1 = this->GetClass()->GetDexFile()->GetRaw();
   const RawDexFile::ProtoId& proto1 = raw1->GetProtoId(this->proto_idx_);
-  const RawDexFile* raw2 = that->dex_file_->GetRaw();
+  const RawDexFile* raw2 = that->GetClass()->GetDexFile()->GetRaw();
   const RawDexFile::ProtoId& proto2 = raw2->GetProtoId(that->proto_idx_);
 
   // TODO: compare ProtoId objects for equality and exit early
@@ -101,11 +101,11 @@
 }
 
 bool Method::HasSameReturnType(const Method* that) const {
-  const RawDexFile* raw1 = this->dex_file_->GetRaw();
+  const RawDexFile* raw1 = this->GetClass()->GetDexFile()->GetRaw();
   const RawDexFile::ProtoId& proto1 = raw1->GetProtoId(this->proto_idx_);
   const char* type1 = raw1->dexStringByTypeIdx(proto1.return_type_idx_);
 
-  const RawDexFile* raw2 = that->dex_file_->GetRaw();
+  const RawDexFile* raw2 = that->GetClass()->GetDexFile()->GetRaw();
   const RawDexFile::ProtoId& proto2 = raw2->GetProtoId(that->proto_idx_);
   const char* type2 = raw2->dexStringByTypeIdx(proto2.return_type_idx_);