Make dvmCardTableStartup be more independant of HeapSource startup.

Also added a call to dvmCardTableShutdown. Also removed the dependency
on GcHeap from CardTable.h.

Change-Id: Icf0293572371cc8a30b55672816fdd75a151e82c
diff --git a/vm/alloc/HeapSource.c b/vm/alloc/HeapSource.c
index bb27f31..f685fe9 100644
--- a/vm/alloc/HeapSource.c
+++ b/vm/alloc/HeapSource.c
@@ -547,10 +547,6 @@
     countAllocation(hs2heap(hs), hs, false);
 
     gHs = hs;
-    if (!dvmCardTableStartup(gcHeap, base)) {
-        LOGE_HEAP("card table allocation failed.");
-        goto fail;
-    }
     return gcHeap;
 
 fail:
@@ -621,6 +617,14 @@
 }
 
 /*
+ * Gets the begining of the allocation for the HeapSource.
+ */
+void *dvmHeapSourceGetBase(void)
+{
+    return gHs->heapBase;
+}
+
+/*
  * Returns the requested value. If the per-heap stats are requested, fill
  * them as well.
  *