libs: Move cstr!() into its own crate

Make the macro host_supported, for unittests.

This overshadows the homonymous crate from crates.io [1] but importing
and depending on an external crate for <10 lines of code seems overkill.

[1]: https://crates.io/crates/cstr

Bug: 308694211
Test: atest libcstr.tests
Test: m libcstr
Test: m pvmfw_bin rialto_bin vmbase_example_bin
Change-Id: If1bf37034fc004a380b3ba528b9d76393a865d3e
diff --git a/pvmfw/Android.bp b/pvmfw/Android.bp
index b7b5900..b6f3940 100644
--- a/pvmfw/Android.bp
+++ b/pvmfw/Android.bp
@@ -16,6 +16,7 @@
         "libbssl_ffi_nostd",
         "libciborium_nostd",
         "libciborium_io_nostd",
+        "libcstr",
         "libdiced_open_dice_nostd",
         "libfdtpci",
         "libhyp",
@@ -55,6 +56,7 @@
         unit_test: true,
     },
     rustlibs: [
+        "libcstr",
         "libzeroize",
     ],
 }
@@ -90,6 +92,7 @@
     },
     prefer_rlib: true,
     rustlibs: [
+        "libcstr",
         "liblibfdt",
         "liblog_rust",
         "libpvmfw_fdt_template",