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/compiler.h b/src/compiler.h
index 639ab4f..31ee613 100644
--- a/src/compiler.h
+++ b/src/compiler.h
@@ -203,6 +203,14 @@
 
 #if defined(ART_USE_LLVM_COMPILER)
   UniquePtr<compiler_llvm::CompilerLLVM> compiler_llvm_;
+#else
+  void* compiler_library_;
+  typedef CompiledMethod* (*CompilerFn)(Compiler& compiler,
+                                        const DexFile::CodeItem* code_item,
+                                        uint32_t access_flags, uint32_t method_idx,
+                                        const ClassLoader* class_loader,
+                                        const DexFile& dex_file);
+  CompilerFn compiler_;
 #endif
 
   DISALLOW_COPY_AND_ASSIGN(Compiler);