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: Support the audio amplifier hook

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

Change-Id: Ic944a9f7059c78b79322dae9c787cdd8bb029cff