Pulled out instrumentation into its own class separate from trace.

This is in preparation for Ian's debugger changes. The instrumentation
still needs support for debugging, which I'll add later.

Change-Id: I29ce0af1ff2eaec8f6d2f54963263381363ebf72
diff --git a/src/runtime.h b/src/runtime.h
index 94ab0c4..d2238ae 100644
--- a/src/runtime.h
+++ b/src/runtime.h
@@ -47,6 +47,7 @@
 class ClassLoader;
 class DexFile;
 class Heap;
+class Instrumentation;
 class InternTable;
 struct JavaVMExt;
 class AbstractMethod;
@@ -343,17 +344,10 @@
   void DidForkFromZygote();
   bool PreZygoteFork();
 
-  void EnableMethodTracing(Trace* tracer);
+  void EnableMethodTracing(Trace* trace);
   void DisableMethodTracing();
-
-  bool IsMethodTracingActive() const {
-    return tracer_ != NULL;
-  }
-
-  Trace* GetTracer() const {
-    CHECK(IsMethodTracingActive());
-    return tracer_;
-  }
+  bool IsMethodTracingActive() const;
+  Instrumentation* GetInstrumentation() const;
 
   bool UseCompileTimeClassPath() const {
     return use_compile_time_class_path_;
@@ -465,7 +459,7 @@
   bool method_trace_;
   std::string method_trace_file_;
   size_t method_trace_file_size_;
-  Trace* tracer_;
+  Instrumentation* instrumentation_;
 
   typedef SafeMap<jobject, std::vector<const DexFile*>, JobjectComparator> CompileTimeClassPaths;
   CompileTimeClassPaths compile_time_class_paths_;