ART: Refactor TI tests

Add a helper to explicitly bind native methods in a given class,
using dlsym to look up C functions in the local environment.

Add a callback helper that hooks VmInit and calls the above function
on the Main class. Use the callback helper before calling the test-
defined or shared minimal OnLoad function.

Add a binder helper that immediately binds the Main functions. Use
the helper before calling the test-defined OnAttach function.

Remove System.loadLibrary from tests. Instead rely on the explicit
binding.

In preparation for making the tests functional on device.

Test: m test-art-host
Change-Id: I12e68f070e8c6331e51d3a1fa4b9ebd8f28dfce6
diff --git a/test/911-get-stack-trace/src/Main.java b/test/911-get-stack-trace/src/Main.java
index b199033..96a427d 100644
--- a/test/911-get-stack-trace/src/Main.java
+++ b/test/911-get-stack-trace/src/Main.java
@@ -16,7 +16,7 @@
 
 public class Main {
   public static void main(String[] args) throws Exception {
-    System.loadLibrary(args[1]);
+    bindTest911Classes();
 
     SameThread.doTest();
 
@@ -42,4 +42,6 @@
 
     System.out.println("Done");
   }
+
+  private static native void bindTest911Classes();
 }