Make `libart(d)-disassembler` a requirement of `libart(d)-compiler`.

The constructor of `art::HGraphVisualizerDisassembler` (which is part
of `libart(d)-compiler.so`) may dynamically load
`libart(d)-disassembler.so`; add `libart(d)-disassembler` to the
`runtime_libs` property of module `libart(d)-compiler` to make sure
the former can be found.

Also promote the failure to dynamically load
`libart(s)-disassembler.so` in
`art::HGraphVisualizerDisassembler::HGraphVisualizerDisassembler` from
`WARNING` to `ERROR`.

Test: art/tools/buildbot-build.sh --host \
        && art/test/testrunner/testrunner.py --host --optimizing \
             -t 640-checker-integer-valueof
Bug: 149749169
Change-Id: I307bdf8b71e47ed8da1d6d62ab688c500b3f9c80
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc
index 9419c8d..d94c1fa 100644
--- a/compiler/optimizing/graph_visualizer.cc
+++ b/compiler/optimizing/graph_visualizer.cc
@@ -113,16 +113,19 @@
                                const uint8_t* base_address,
                                const uint8_t* end_address)
       : instruction_set_(instruction_set), disassembler_(nullptr) {
-    libart_disassembler_handle_ =
-        dlopen(kIsDebugBuild ? "libartd-disassembler.so" : "libart-disassembler.so", RTLD_NOW);
+    constexpr const char* libart_disassembler_so_name =
+        kIsDebugBuild ? "libartd-disassembler.so" : "libart-disassembler.so";
+    libart_disassembler_handle_ = dlopen(libart_disassembler_so_name, RTLD_NOW);
     if (libart_disassembler_handle_ == nullptr) {
-      LOG(WARNING) << "Failed to dlopen libart-disassembler: " << dlerror();
+      LOG(ERROR) << "Failed to dlopen " << libart_disassembler_so_name << ": " << dlerror();
       return;
     }
+    constexpr const char* create_disassembler_symbol = "create_disassembler";
     create_disasm_prototype* create_disassembler = reinterpret_cast<create_disasm_prototype*>(
-        dlsym(libart_disassembler_handle_, "create_disassembler"));
+        dlsym(libart_disassembler_handle_, create_disassembler_symbol));
     if (create_disassembler == nullptr) {
-      LOG(WARNING) << "Could not find create_disassembler entry: " << dlerror();
+      LOG(ERROR) << "Could not find " << create_disassembler_symbol << " entry in "
+                 << libart_disassembler_so_name << ": " << dlerror();
       return;
     }
     // Reading the disassembly from 0x0 is easier, so we print relative