Create libelffile library for ELF file manipulation.

Move some of our tooling to library to make it reusable.

Remove MIPS support from the ELF builder.  This is slightly
easier than making it independent of the runtime.

Bug: 110133331
Test: test.py -b --host
Change-Id: I93343808d0e27ee8e1117e713a2503e8179fc245
diff --git a/compiler/debug/elf_debug_writer.h b/compiler/debug/elf_debug_writer.h
index 90580b4..14a5edb 100644
--- a/compiler/debug/elf_debug_writer.h
+++ b/compiler/debug/elf_debug_writer.h
@@ -19,12 +19,13 @@
 
 #include <vector>
 
+#include "arch/instruction_set_features.h"
 #include "base/array_ref.h"
 #include "base/macros.h"
 #include "base/mutex.h"
-#include "debug/dwarf/dwarf_constants.h"
 #include "debug/debug_info.h"
-#include "linker/elf_builder.h"
+#include "dwarf/dwarf_constants.h"
+#include "elf/elf_builder.h"
 
 namespace art {
 class OatHeader;
@@ -36,7 +37,7 @@
 
 template <typename ElfTypes>
 void WriteDebugInfo(
-    linker::ElfBuilder<ElfTypes>* builder,
+    ElfBuilder<ElfTypes>* builder,
     const DebugInfo& debug_info);
 
 std::vector<uint8_t> MakeMiniDebugInfo(