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/mutex.cc b/src/mutex.cc
index f7c3143..340a075 100644
--- a/src/mutex.cc
+++ b/src/mutex.cc
@@ -61,6 +61,7 @@
   int rc = pthread_mutex_destroy(&mutex_);
   if (rc != 0) {
     errno = rc;
+    // TODO: should we just not log at all if shutting down? this could be the logging mutex!
     bool shutting_down = Runtime::Current()->IsShuttingDown();
     PLOG(shutting_down ? WARNING : FATAL) << "pthread_mutex_destroy failed for " << name_;
   }