Add libandroid_runtime_lazy

Extract lazy loading of libandroid_runtime from libbinder_ndk
into its own library.

This lib loads libandroid_runtime on demand, so the clients
which don't use this can benefit.

Do not over-use this lib to mock the build system and pretend not
depending on libandroid_runtime.

Bug: 125550121
Test: m -j
Test: readelf -d $OUT/system/lib64/libbinder_ndk.so | grep NEED
        # see if there is not libandroid_runtime
Test: atest android.binder.cts

Change-Id: I4b120686ba34f45e060594641ffc74bc1496c8c9
diff --git a/libs/binder/ndk/Android.bp b/libs/binder/ndk/Android.bp
index a96c9a0..21bef2e 100644
--- a/libs/binder/ndk/Android.bp
+++ b/libs/binder/ndk/Android.bp
@@ -39,17 +39,12 @@
     ],
 
     shared_libs: [
+        "libandroid_runtime_lazy",
         "libbase",
         "libbinder",
         "libutils",
     ],
 
-    required: [
-        // libbinder_ndk may be used by Java and non-Java things. When lower-level things use it,
-        // they shouldn't have to take on the cost of loading libandroid_runtime.
-        "libandroid_runtime",
-    ],
-
     header_libs: [
         "jni_headers",
     ],