Handle all kinds of focuses and make fault tolerant to phone calls.
Audio Focus Loss Transient: We stop music and wait for focus gain.
Audio Focus Loss Transient May Duck: We lower the volume (via Gain).
Sometimes phones do not resume even after sending play after the phone
call. This is possible if there is a race condition of when A2dp thinks
it got focus back vs phone actually releasing the call. To avoid this we
add retry logic to try playing again. This also avoids janky situations
when playing music will not initiate at first.
Bug: b/
28003743
Bug: b/
28065071
Change-Id: I1d31156d134d98959ff3044c98206c60515d7e5a