Mark stack create once per heap.

Mark stack is now created during heap initialization and is then re-used for each GC. This helps to prevent fragmentation of the heap.

Change-Id: I5dd1bdfb58452415b88bfeb0c05a41ecbca09696
diff --git a/src/mark_stack.h b/src/mark_stack.h
index 4301e0e..cd308c5 100644
--- a/src/mark_stack.h
+++ b/src/mark_stack.h
@@ -50,6 +50,8 @@
     return ptr_ == begin_;
   }
 
+  void Reset();
+
  private:
   MarkStack() :
       begin_(NULL), limit_(NULL), ptr_(NULL) {