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/apc.rs b/keystore2/src/apc.rs
index bdfec4e..767014e 100644
--- a/keystore2/src/apc.rs
+++ b/keystore2/src/apc.rs
@@ -28,7 +28,7 @@
     ResponseCode::ResponseCode,
 };
 use android_security_apc::binder::{
-    ExceptionCode, Interface, Result as BinderResult, SpIBinder, Status as BinderStatus,
+    ExceptionCode, Interface, Result as BinderResult, SpIBinder, Status as BinderStatus, Strong,
 };
 use anyhow::{Context, Result};
 use binder::{IBinder, ThreadState};
@@ -202,7 +202,7 @@
     /// Create a new instance of the Android Protected Confirmation service.
     pub fn new_native_binder(
         confirmation_token_sender: Sender<Vec<u8>>,
-    ) -> Result<impl IProtectedConfirmation> {
+    ) -> Result<Strong<dyn IProtectedConfirmation>> {
         let result = BnProtectedConfirmation::new_binder(Self {
             state: Arc::new(Mutex::new(ApcState::new(confirmation_token_sender))),
         });