Broadcast details about MediaBrowser connection state

Refactor MediaBrowserConnector, MediaSourceViewModel and
PlaybackViewModel so that we have a better idea of the
connection state of MediaBrowser and MediaController to prevent calls
to those objects once onConnectionSuspended or onSessionDestroyed has
been called (ie don't talk to dead objects).

The more detailed ConnectionState will allow us later to notify the
user when a media app isn't restarted after crashing too often.

Also pass a MediaSource to the MediaBrowserConnector since that's the
identifier we use elsewhere.

Bug: 123301687
Test: manual + make -j64 RunCarMediaCommonRoboTests
Change-Id: I68ace9b9159868b1589fa869350bf96fd2089e69
Merged-In: I68ace9b9159868b1589fa869350bf96fd2089e69
8 files changed