Switch libbcc to start using MetadataExtractor.

BUG=6051742

This reduces code duplication, and makes us a client of our own helper library.
It also helps to fix a potential issue that can come up with older bitcode
containing only ForEach signatures and not names (something that was fixed in
MetadataExtractor, but not libbcc). We no longer look at metadata nodes at all
from libbcc.

Change-Id: I5cdacec82e4cd164f1aec5aa28a5e82feb9cfc15
diff --git a/lib/ExecutionEngine/Compiler.h b/lib/ExecutionEngine/Compiler.h
index c70a920..eebe550 100644
--- a/lib/ExecutionEngine/Compiler.h
+++ b/lib/ExecutionEngine/Compiler.h
@@ -77,17 +77,9 @@
 
     static void LLVMErrorHandler(void *UserData, const std::string &Message);
 
-    static const llvm::StringRef PragmaMetadataName;
-    static const llvm::StringRef ExportVarMetadataName;
-    static const llvm::StringRef ExportFuncMetadataName;
-    static const llvm::StringRef ExportForEachNameMetadataName;
-    static const llvm::StringRef ExportForEachMetadataName;
-    static const llvm::StringRef ObjectSlotMetadataName;
-
     friend class CodeEmitter;
     friend class CodeMemoryManager;
 
-
   private:
     ScriptCompiled *mpResult;
 
@@ -182,9 +174,7 @@
                           std::vector<uint32_t>& Signatures);
 
     int runLTO(llvm::TargetData *TD,
-               llvm::NamedMDNode const *ExportVarMetadata,
-               llvm::NamedMDNode const *ExportFuncMetadata,
-               std::vector<std::string>& ForEachExpandList,
+               std::vector<const char*>& ExportSymbols,
                llvm::CodeGenOpt::Level OptimizationLevel);
 
     bool hasError() const {