hal: Fix for adev_open causing hang

- Mutex acquired in the begining of
  the synchronised block but is not
  unlocked when platform_init fails.

- Fix by adding the mutex unlock code.

Change-Id: I02b7f7cac0185dd40ec9f03e443e4de98b18c105
CRs-fixed: 590216
policy_hal: remove unused function isVirtualInputDevice

- isVirtualInputDevice is a static member function and
  its implementation should be modified in base class only.
- Remove isVirtualInputDevice in policy_hal and modify
  APM_AUDIO_IN_DEVICE_VIRTUAL_ALL in base class to support
  FM recording over A2DP headset.

Change-Id: Ib0527cfdff170367491feb62b117815558e139e1
CRs-Fixed: 581377
hal: Avoid duplicate primary outputs

open_output_stream API expects the default usecase to
be returned if other usecases are unavailable or unusable.
However, the output returned in this default case must be
the default primary if it exists.

Change-Id: Ie5cc53f077358d7039d62b09b29edb58c213bc08
audio: Add support for 8974 Voice2

Add the Voice2 pcm ID to enable DSDS on 8974.

CRs-fixed: 587066
Change-Id: Ifd134313a49af601f4e0f1d66ad0b4ff8596609d