Add basic logic for new platform compatibilty framework.

This change includes the core logic for determining when a
compatibility change is enabled for a given app, and overriding this
for dev/testing. None of this code is integrated into the wider
system yet.

Follow on changes will:
- Read compatibilty changes from disk to construct CompatChange
  instances.
- Send the list of disabled changes to each new app process when they
  are created.
- Add a new `adb shell am` command for adding/removing package
  overrides.

See also go/gating-and-logging for more context.

Test: atest PlatformCompatTest
Bug: 135010838
Change-Id: Ie91b1fe899e1ccb154cd5b5d8e9666c5b163b522
4 files changed