libaudiohal: Use IDeviceFactory in MSD HAL when opening a device

This allows instantiating the MSD device if the HAL is present.

The directive in the .rc about restarting "vendor.audio-hal-4-0-msd"
service is ignored when the service is not present.

The current policy for handling HAL service restarts is to
terminate the audio service. It is possible to do better,
e.g. only re-open the devices of the crashed HAL when possible,
without affecting devices from other HALs. Will try to implement
that later.

Remove the MSD-related code from the V2.0 shim, as MSD isn't
supported on HAL V2.0.

Bug: 63901775
Test: manual on a MSD HAL prototype, also on taimen with no MSD HAL
Change-Id: I7f9de692d6e7b8ff52cdbcaba1074692c5f1c90e
5 files changed