Mark non-image spaces and use write barrier for image spaces.

Don't mark string and class roots that are in the image, alloc space
references will be caught by the write barrier.

Change-Id: Idcf9e4ede3b83556d4f8a01276273726dc6eea46
diff --git a/src/thread.h b/src/thread.h
index 547fdfa..7412ea7 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -483,6 +483,7 @@
   void HandleUncaughtExceptions();
   void RemoveFromThreadGroup();
 
+  void InitCardTable();
   void InitCpu();
   void InitFunctionPointers();
   void InitTid();
@@ -539,8 +540,8 @@
 
   RuntimeStats stats_;
 
-  // FIXME: placeholder for the gc cardTable
-  uint32_t card_table_;
+  // The biased card table, see CardTable for details
+  byte* card_table_;
 
   // The end of this thread's stack. This is the lowest safely-addressable address on the stack.
   // We leave extra space so there's room for the code that throws StackOverflowError.