Add support for opening classes.dex file from zip, jar, apk

Adding new ZipArchive class and test

	src/zip_archive.h
	src/zip_archive.cc
	src/zip_archive_test.cc
	build/Android.common.mk

Change from host only use of build dex file for libcore to using host
and target core.jar containing classes.dex files. This requires
setting up an ANDROID_DATA directory to containing an art-cache file
for the extracted dex files, similar to the dalvik-cache for odex
files. A unique ANDROID_DATA and art-cache is created and cleaned up
for each test run (similar to vogar).

	src/common_test.h

Add dependency for libcore jar files to test targets to support
RuntimeTest use of core.jar

	Android.mk

Extract common includes to ART_C_INCLUDES when adding zlib dependency

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

Adding TODO regarding unordered map for ClassLinker::classes_ table.

	src/class_linker.h

Adding DexFile::OpenZip (also changed OpenFile to take
	src/dex_file.cc
	src/dex_file.h

Adding kPageSize of 4096, validated by Runtime::Init

	src/globals.h
	src/runtime.cc

    Updated to use kPageSize where it seemed appropriate.

	src/jni_compiler.cc
	src/jni_compiler_test.cc
	src/space.cc
	src/thread.cc
	src/thread_x86.cc

Changed thread_list_ and class_linker_ to be declared in Runtime::Init
initialization order.

	src/runtime.h

Change-Id: Id626abe5b6c1990e4f93598256ee0fae000818f6
diff --git a/build/Android.common.mk b/build/Android.common.mk
index f92bc09..64f0de4 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -16,6 +16,8 @@
 
 ART_CPP_EXTENSION := .cc
 
+ART_C_INCLUDES := external/gtest/include external/zlib
+
 ART_CFLAGS := \
 	-O0 \
 	-ggdb3 \
@@ -52,7 +54,8 @@
 	src/space.cc \
 	src/stringpiece.cc \
 	src/stringprintf.cc \
-	src/thread.cc
+	src/thread.cc \
+	src/zip_archive.cc
 
 LIBART_TARGET_SRC_FILES := \
 	$(LIBART_COMMON_SRC_FILES) \
@@ -83,7 +86,8 @@
 	src/jni_compiler_test.cc.arm \
 	src/object_test.cc \
 	src/runtime_test.cc \
-	src/space_test.cc
+	src/space_test.cc \
+	src/zip_archive_test.cc
 
 TEST_TARGET_SRC_FILES := \
 	$(TEST_COMMON_SRC_FILES) \
diff --git a/build/Android.libart.mk b/build/Android.libart.mk
index de07b8c..e6169e9 100644
--- a/build/Android.libart.mk
+++ b/build/Android.libart.mk
@@ -37,7 +37,7 @@
   ifeq ($(2),debug)
     LOCAL_CFLAGS += -UNDEBUG
   endif
-  LOCAL_C_INCLUDES += src external/gtest/include
+  LOCAL_C_INCLUDES += src $(ART_C_INCLUDES)
   LOCAL_SHARED_LIBRARIES := liblog
   ifeq ($(1),target)
     LOCAL_SHARED_LIBRARIES += libcutils libstlport libz
diff --git a/build/Android.test.mk b/build/Android.test.mk
index 5d2a225..325f076 100644
--- a/build/Android.test.mk
+++ b/build/Android.test.mk
@@ -29,12 +29,13 @@
   LOCAL_MODULE_TAGS := tests
   LOCAL_SRC_FILES := $(2)
   LOCAL_CFLAGS := $(ART_CFLAGS)
-  LOCAL_C_INCLUDES += external/gtest/include
+  LOCAL_C_INCLUDES += $(ART_C_INCLUDES)
   LOCAL_SHARED_LIBRARIES := libarttest libartd
   ifeq ($(1),target)
-    LOCAL_SHARED_LIBRARIES += libstlport
+    LOCAL_SHARED_LIBRARIES += libstlport libz
     LOCAL_STATIC_LIBRARIES := libgtest libgtest_main
   else
+    LOCAL_SHARED_LIBRARIES += libz-host
     LOCAL_WHOLE_STATIC_LIBRARIES := libgtest_host libgtest_main_host
   endif
   ifeq ($(1),target)