libmediadrm: cleanup exception log spam

Included in this change:
* Only log highest HAL version for each scheme
* Make factory vector static so HALs are only enumerated once

Bug: 162255728
Test: MediaDrmTest#testExceptionMessage
Change-Id: I79ee7a58d605a11046fdfad816decedc559a39d6
diff --git a/drm/libmediadrm/DrmHal.cpp b/drm/libmediadrm/DrmHal.cpp
index a84fd92..8605802 100644
--- a/drm/libmediadrm/DrmHal.cpp
+++ b/drm/libmediadrm/DrmHal.cpp
@@ -340,7 +340,7 @@
 }
 
 std::vector<sp<IDrmFactory>> DrmHal::makeDrmFactories() {
-    std::vector<sp<IDrmFactory>> factories(DrmUtils::MakeDrmFactories());
+    static std::vector<sp<IDrmFactory>> factories(DrmUtils::MakeDrmFactories());
     if (factories.size() == 0) {
         // must be in passthrough mode, load the default passthrough service
         auto passthrough = IDrmFactory::getService();