Create a PIC nonce-watcher for external clients

This creates a NonceWatcher feature that reports if a PIC nonce has
changed its value.  The feature is only effective in the same process
as the nonce server (e.g., system_server for MODULE_SYSTEM nonces),
but it is very fast in-process.

Clients wait for a nonce change by blocking on a semaphore.  This
isolates the PIC invalidation hot path from delays in the client
behavior.

Flag: android.app.pic_uses_shared_memory
Bug: 360897450
Test: atest
 * FrameworksCoreTests:PropertyInvalidatedCacheTests
 * FrameworksCoreTests:IpcDataCacheTest
 * CtsOsTestCases:IpcDataCacheTest
Change-Id: I56d89df8301e397860836dd06bf9fed14bc13d45
2 files changed