audio: Fix to update devices for all non-primary outputs

-Incorrect routing is observed, after call disconnection, due to
 devices not being updated for non-primary outputs.
-Update devices for non-primary outputs as well.

Change-Id: I424f980e3a26f57e7655b5fd10bb54e73cca3a57
CRs-Fixed: 592604
audio: update srcOutputs based on current outputs

- Issue: Direct outputs are also opened to query
  for dynamic parameters in checkOutputsForDevice
  and will be closed later by setDeviceConnectionState.
  There is a mismatch between srcOutputs and dstOutputs
  in checkOutputForStrategy which results in a temp
  mute while moving tracks from one output to another
- Fix this issue by updating srcOutputs based on mOutputs
  instead of mPreviousOutputs

Change-Id: Ie716e33606985ae93f31abbf8aac506c935840db
CRs-Fixed: 591339
audio: primary desc check for sonification

- Audio glitches on alarm expiry if alarm starts
  on screen lock/standby mode

- On alarm expiry alarm tone will start play on combo device
  &screen unlock tone try to play on headset which results
  multiple device switch, as a result audio glitches are audible

- If sonfication strategy is used by primary desc , we will
  treat all non music streams with sonfication stragey which
  will avoid device switch

Change-Id: Id7d8dfa75f8d881549d57f01e3bb1025135d4b2c
CRs-Fixed: 514467
CRs-Fixed: 657274
wifi: add presto changes

Import wifi changes from presto repository

Change-Id: I515f5171d22fbbc132f0f0504c33153671b6e1af
wifi: Add option for a device-specific wifi

This patch adds TARGET_CUSTOM_WIFI which can be used to replace the
standard wifi.c with a custom implementation without breaking things
for devices that assume default functionality. (Derived from
Gingerbread:566d2f2)

Change-Id: Ief8c51c4c33f879c7771af8769c83f1f89979034