Fix addAudioDeviceCallback() memory leak bug

Store jobjects and JObjectHolders as backup, delete JObjectHolders after
usage

Bug: 128341809
Test: RoutingTest#test_MediaPlayer2_RoutingChangedCallback
Change-Id: I70b2312519ab0efef0ed40ce721ae8c26dc1aed2
diff --git a/media/libmediaplayer2/include/mediaplayer2/MediaPlayer2AudioOutput.h b/media/libmediaplayer2/include/mediaplayer2/MediaPlayer2AudioOutput.h
index 1b3f2dc..f38b7cc 100644
--- a/media/libmediaplayer2/include/mediaplayer2/MediaPlayer2AudioOutput.h
+++ b/media/libmediaplayer2/include/mediaplayer2/MediaPlayer2AudioOutput.h
@@ -124,7 +124,9 @@
     audio_output_flags_t    mFlags;
     sp<JObjectHolder>       mPreferredDevice;
     mutable Mutex           mLock;
-    Vector<std::pair<jobject, jobject>> mRoutingDelegates; // <listener, routingDelegate>
+
+    // <listener, routingDelegate>
+    Vector<std::pair<sp<JObjectHolder>, sp<JObjectHolder>>> mRoutingDelegates;
 
     // static variables below not protected by mutex
     static bool             mIsOnEmulator;