DO NOT MERGE Backport RVC Message Notification Sync changes

The purpose of the backport is to get parity of Companion Device
Support's Message notification sync feature between Q.Car and R.
Because of this, any changes in R in this library that don't effect
this feature will not be backported.

Changes backported:
- Decouple Notification posting from receiving Avatars
- Fix ServiceConnection leak for ProjectionStateListener
- Support Avatar caching just for 1-1 converstaions
- Refactor SenderKey constructor
- rename getReceiveTime to getReceivedTime

Bug: 155220140
Test: built CompanionDeviceSupport and Messenger, sideloaded, ensured
notifications (1-1 + group) show up correctly, Tap to read works,
notifications suppressed during projection, handles STR gracefully,
handles device connections/disconnections gracefully.

Change-Id: I2f810fa8a673fb0fa84088d4a5efb8e2c604738a
6 files changed