hal: Allow msm8916 to enable compress voip/compress capture/dolby

Change-Id: I809ce93096b3aa220665dd0a9590c6506f2c1b51
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
hal: Add get_sample_rate for 8960 platforms

Change-Id: I423c502573a0c962a64a51bd80c88c942aa95621
Revert "hal: Don't mess with primary output"

This reverts commit fc56491ce39b1ee499c69ec25f88d2e3a0fe2b72.

Change-Id: Ifa0b364d01e5057e845572e9c3c011fdbbf02b2b
hal: Support the audio amplifier hook

* Original legacy HAL commit:
  Ib236598a5888b2af19bcfb81e285f644a0e84c0d
* Example: http://review.cyanogenmod.org/38221

Change-Id: Ic944a9f7059c78b79322dae9c787cdd8bb029cff
hal: Fix mismerge

 * Should not have been removed.

Change-Id: Icfd71d7621e99d0a164054b3dceff208f80cd28f