Ravenwood/HostStubGen refactor and bug fixes

[Fixed the NPE in the sysui test]


- Bug fix: Now native substitution methods can handle bytes correctly.

- Spec change: disallow using DisabledOnNonRavenwood on types.

It turned out the device side test runner can't handle it if a class rule
uses Assume.

We could still support it with a non-class rule, but to avoid confusion,
let's disallow using it on classes for the time being.

- Add more tests

- Some refactoring for future changes.

Test: ./ravenwood/scripts/run-ravenwood-tests.sh
Test: v2/sysui/unit_test on ABTD: https://android-build.corp.google.com/abtd/run/L40000030002931752/
Bug: 292141694
Bug: 332973325
Change-Id: I6d8df1e879840b60326e2beeeee2d8ee7b2ff925
diff --git a/ravenwood/TEST_MAPPING b/ravenwood/TEST_MAPPING
index a5b28ad..e77f846f 100644
--- a/ravenwood/TEST_MAPPING
+++ b/ravenwood/TEST_MAPPING
@@ -5,6 +5,17 @@
     },
     {
       "name": "RavenwoodBivalentTest_device"
+    },
+    {
+      "name": "SystemUIGoogleTests",
+      "options": [
+        {
+          "exclude-annotation": "org.junit.Ignore"
+        },
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
     }
   ],
   "ravenwood-presubmit": [