hal: Don't mess with primary output

Change-Id: I056993a0e9197549c7e011d9d27a027a6a666892
hal: add support for I2S based external modem

There are specific xml files used for I2S based external modem.
Add check to load the correct xml file.

For I2S based external modem, voice sample rate can be 8k or
16k based on vocoder type. Call csd client api to get the
correct sample rate to configure voice call.

Change-Id: Ie9799336620f49a890355be74fe1830eb348cabe
hal: load CSD library by checking number of modems

The method to get baseband through property will be deprecated.

Call ESOC API to get the number of modems within the platform.
Use the number of modems instead of baseband to decide whether
CSD library should be loaded.

Change-Id: I470616a6ce833a368783bba9442285a69491cbac
hal: Featurize use of mdm_detect library

 * Only certain targets need this, and there are non-OSS dependencies.
 * Featurize it so it can be used where necessary.

Change-Id: I490cc9d2d5b5b7e18192d54e912afcad2fce254d
hal: Update msm8916 library with new feature support

Change-Id: I728154c2c01650ea88b994b0ad73711694c64070
hal: Fixes for 8916 features

 * Allow additional offload formats
 * Use correct mixer controls for sample rate and bit width

Change-Id: I7db10c7c90de6736ef5e127808ed7411ad71ff86