Add ObjectArray::CopyOf

As part of doing this, moved Heap::Alloc* helpers to the corresponding
classes in object.h to break heap.h<->object.h cycle due to use of
Heap from ObjectArray::CopyOf (which is templatized and needs to be
defined in .h file).

Change-Id: I1870af6e9dc6552820034ead5e20d13ae4da67da
diff --git a/src/thread.h b/src/thread.h
index ed2ba12..d0f6623 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -11,7 +11,6 @@
 #include "jni_internal.h"
 #include "logging.h"
 #include "macros.h"
-#include "object.h"
 #include "offsets.h"
 #include "runtime.h"
 
@@ -19,6 +18,7 @@
 
 namespace art {
 
+class Method;
 class Object;
 class Runtime;
 class StackHandleBlock;