Refactor the compilers out of libart.

This builds three separate compilers and dynamically links with the right one
at runtime.

Change-Id: I59d22b9884f41de733c09f97e29ee290236d5f4b
diff --git a/src/mark_sweep.h b/src/mark_sweep.h
index c675675..dce4b52 100644
--- a/src/mark_sweep.h
+++ b/src/mark_sweep.h
@@ -25,11 +25,16 @@
 namespace art {
 
 class Class;
+class Heap;
 class Object;
 
 class MarkSweep {
  public:
   MarkSweep() :
+      mark_stack_(NULL),
+      heap_(NULL),
+      mark_bitmap_(NULL),
+      live_bitmap_(NULL),
       finger_(NULL),
       condemned_(NULL),
       soft_reference_list_(NULL),
@@ -162,8 +167,8 @@
 
   MarkStack* mark_stack_;
 
+  Heap* heap_;
   HeapBitmap* mark_bitmap_;
-
   HeapBitmap* live_bitmap_;
 
   Object* finger_;