Clean up ScopedThreadStateChange to use ObjPtr

Also fixed inclusion of -inl.h files in .h files by adding
scoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h

Changed AddLocalReference / Decode to use ObjPtr.

Changed libartbenchmark to be debug to avoid linkage errors.

Bug: 31113334

Test: test-art-host

Change-Id: I4d2e160483a29d21e1e0e440585ed328b9811483
diff --git a/oatdump/oatdump.cc b/oatdump/oatdump.cc
index 06d9814..f3f418d 100644
--- a/oatdump/oatdump.cc
+++ b/oatdump/oatdump.cc
@@ -57,7 +57,7 @@
 #include "oat_file_manager.h"
 #include "os.h"
 #include "safe_map.h"
-#include "scoped_thread_state_change.h"
+#include "scoped_thread_state_change-inl.h"
 #include "ScopedLocalRef.h"
 #include "stack_map.h"
 #include "string_reference.h"
@@ -2474,7 +2474,7 @@
   // Use the class loader while dumping.
   StackHandleScope<1> scope(self);
   Handle<mirror::ClassLoader> loader_handle = scope.NewHandle(
-      soa.Decode<mirror::ClassLoader*>(class_loader));
+      soa.Decode<mirror::ClassLoader>(class_loader));
   options->class_loader_ = &loader_handle;
 
   OatDumper oat_dumper(*oat_file, *options);