Include feature flag state in cached package

We write the values of all feature flags encountered in the manifest in
the cached package. We then read these values in PackageCacher and
compare them to the current feature flag values. A cached package is
invalid if any of the flag values changed, and therefore the package
needs to be re-parsed.

Flag: android.content.pm.include_feature_flags_in_package_cacher
Bug: 364771256
Test: atest PackageManagerServiceUnitTests PackageManagerServiceServerTests
Test: Manually with include_feature_flags_in_package_cacher enabled.
Flipped the value of `android.content.pm.quarantined_enabled` back and
forth and verified the permission `android.permission.QUARANTINE_APPS`
is present (or absent) after a reboot. Inspected the logs to confirm
that PackageCacher invalidated the entry when the flag is flipped.

Change-Id: I6d78b1086374b80e66f921a53651b77867203eca
12 files changed