audio policy: fix mmap stream invalidation logic

Implement a MMAP stream invalidation logic consistent with AAudio
disconnect callback policy.

- When a MMAP stream is opened with a preferred device selection:
  Invalidate the stream only when the preferred device becomes unavailable,
  either because disconnected or not selectable by highest priority use case.
- When a MMAP stream is opened without explicit device selection:
  Invalidate the stream when current device selection changes due to the
  routing rules applicable to the stream's audio attributes (attributes
  of first client on that stream).

Bug: 144020984
Test: OboeTester > TEST DISCONNECT

Change-Id: I70fde0bc8ab9d544b8d3badb713e6239d792cbdb
3 files changed