Add dtcompare tool and device tree validation test changes

Created dtcompare tool to compare 2 device trees. The tool traverses the
trees depth-first, and allows ignoring values of properties, and
skipping properties completely.
Avoid using diff.
Using FDT allows more flexibility in comparing device trees, such as
skipping over fields or validating their presence.
Some fields in the device tree are expected to exist and contain
separate data, and it should be validated that such fields exist. Other
fields can be ignored completely.

Bug: 360388014
Test: atest avf_backcompat_tests
Change-Id: Ib4d5f89bbc25e90bd47dd422f7966ab3f2910433
diff --git a/tests/dtcompare/Android.bp b/tests/dtcompare/Android.bp
new file mode 100644
index 0000000..988f420
--- /dev/null
+++ b/tests/dtcompare/Android.bp
@@ -0,0 +1,18 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+rust_binary {
+    name: "dtcompare",
+    crate_root: "src/main.rs",
+    srcs: ["src/main.rs"],
+    edition: "2021",
+    rustlibs: [
+        "libanyhow",
+        "libclap",
+        "libhex_nostd",
+        "liblibfdt_nostd",
+        "liblog_rust",
+    ],
+    visibility: ["//packages/modules/Virtualization:__subpackages__"],
+}