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
24 files changed