Refactor StackVisitor to take a Thread*.

This allows assertion checking on the thread, principally that we never try to
walk the stack of an unsuspended thread.
Fix bug in the OwnedMonitorVisitor where GetVReg could be called on a
StackVisitor with no context.

Change-Id: I06539b624b253b6fb7385e7be11a4bced1d417b2
diff --git a/src/thread.h b/src/thread.h
index 76aea75..13e1cab 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -26,9 +26,7 @@
 #include <string>
 
 #include "base/macros.h"
-#include "closure.h"
 #include "globals.h"
-#include "instrumentation.h"
 #include "jvalue.h"
 #include "oat/runtime/oat_support_entrypoints.h"
 #include "locks.h"
@@ -46,6 +44,7 @@
 class Class;
 class ClassLinker;
 class ClassLoader;
+class Closure;
 class Context;
 struct DebugInvokeReq;
 class DexFile;
@@ -57,7 +56,6 @@
 class ScopedObjectAccess;
 class ScopedObjectAccessUnchecked;
 class ShadowFrame;
-class StackIndirectReferenceTable;
 class StackTraceElement;
 class StaticStorageBase;
 class Thread;