Start implementing JNI.

This patch replaces our JniEnvironment class with the regular JNIEnv.

This patch also adds support for .jar, .zip, and .apk files in the
boot classpath.

There's also an attempt at implementing JNIEnv::FindClass.

I've also fixed a few scoped_ptr/scoped_array bugs (this kind of thing
being the reason we use UniquePtr in libcore), and removed some
unnecessary .

The 'tools/art' script makes it easier to play with aexec on the command-line.

Change-Id: Ic4f704c12e0071f17e95b6e182fdab9370ead9b0
diff --git a/src/thread.h b/src/thread.h
index d0f6623..02b2f65 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -189,7 +189,7 @@
   }
 
   // JNI methods
-  JniEnvironment* GetJniEnv() const {
+  JNIEnv* GetJniEnv() const {
     return jni_env_;
   }
 
@@ -240,9 +240,9 @@
   void DecrementSuspendCount() { suspend_count_--; }
 
  private:
-  Thread() :
-    id_(1234), top_shb_(NULL), exception_(NULL), suspend_count_(0) {
-    jni_env_ = new JniEnvironment();
+  Thread()
+      : id_(1234), top_shb_(NULL), exception_(NULL), suspend_count_(0) {
+    jni_env_ = CreateJNIEnv();
   }
 
   ~Thread() {
@@ -263,7 +263,7 @@
   StackHandleBlock* top_shb_;
 
   // Every thread may have an associated JNI environment
-  JniEnvironment* jni_env_;
+  JNIEnv* jni_env_;
 
   State state_;