Add media browser for resumption

Doc: go/sysui-media-resumption-requirements

The three main pieces are

1. When the user plays media from an app, check if that app implements a
MediaBrowserService. If so, store that app's info for up to N=5 apps

2. When QSPanel is created, use a QSMediaBrowser to query the saved services
for a playable media item and load those in the media controls panel

3. If the user taps the play button on one of those controls, use
QSMediaBrowser to send a play command to the app's MediaBrowserService

Also, if a media player does not have a MediaBrowserService that allows us to
connect, auto-remove the controls when the media session has ended.
Will explore adding a media button receiver back as an alternative in b/154127084

Bug: 151103474
Bug: 151737807
Test: manual- play from app, reboot, see controls, can play
Change-Id: Ia1172316f1b0c301d794d93b77c7628a736fb153
6 files changed