keystore2: Use libbinder_rs Strong references for Binder objects

Update keystore2 to use libbinder_rs Strong<> and Weak<> references for
Binder objects rather than just Box<dyn Interface>.

Bug: 175584883
Test: atest keystore2_test
Change-Id: Ic234ce5ed007a265769a72043d77eb817a21b8ea
diff --git a/keystore2/src/gc.rs b/keystore2/src/gc.rs
index 692cb7e..fbb1cf6 100644
--- a/keystore2/src/gc.rs
+++ b/keystore2/src/gc.rs
@@ -21,6 +21,7 @@
 use crate::globals::{get_keymint_dev_by_uuid, DB};
 use crate::{error::map_km_error, globals::ASYNC_TASK};
 use android_hardware_security_keymint::aidl::android::hardware::security::keymint::IKeyMintDevice::IKeyMintDevice;
+use android_hardware_security_keymint::binder::Strong;
 use anyhow::Result;
 
 #[derive(Clone, Copy)]
@@ -41,7 +42,7 @@
             let mut db = db.borrow_mut();
             if let Some((key_id, mut key_entry)) = db.get_unreferenced_key()? {
                 if let Some(blob) = key_entry.take_km_blob() {
-                    let km_dev: Box<dyn IKeyMintDevice> =
+                    let km_dev: Strong<dyn IKeyMintDevice> =
                         get_keymint_dev_by_uuid(key_entry.km_uuid())
                             .map(|(dev, _)| dev)?
                             .get_interface()?;