Revert "Revert "ART: Start RuntimeCallbacks""

This reverts commit bf6331a45f730e1f1044af2ce43bceda660ae6fc.

Switch to using the mutator lock.

Bug: 31684920
Test: m test-art-host-gtest-runtime_callbacks_test
Test: art/tools/run-jdwp-tests.sh --mode=host --debug
Change-Id: I6ce0f71de2aa9f90cd23cfca7723a793b560b16b
diff --git a/runtime/runtime.h b/runtime/runtime.h
index cf23d05..17e0788 100644
--- a/runtime/runtime.h
+++ b/runtime/runtime.h
@@ -28,6 +28,7 @@
 
 #include "arch/instruction_set.h"
 #include "base/macros.h"
+#include "base/mutex.h"
 #include "dex_file_types.h"
 #include "experimental_flags.h"
 #include "gc_root.h"
@@ -39,6 +40,7 @@
 #include "offsets.h"
 #include "process_state.h"
 #include "quick/quick_method_frame_info.h"
+#include "runtime_callbacks.h"
 #include "runtime_stats.h"
 
 namespace art {
@@ -659,6 +661,10 @@
 
   void AttachAgent(const std::string& agent_arg);
 
+  RuntimeCallbacks& GetRuntimeCallbacks() {
+    return callbacks_;
+  }
+
  private:
   static void InitPlatformSignalHandlers();
 
@@ -916,6 +922,8 @@
 
   ClassHierarchyAnalysis* cha_;
 
+  RuntimeCallbacks callbacks_;
+
   DISALLOW_COPY_AND_ASSIGN(Runtime);
 };
 std::ostream& operator<<(std::ostream& os, const Runtime::CalleeSaveType& rhs);