omap4-common: wrap Moto's proprietary audio-HAL

Moto's audio-HAL is internally resampling when playing sound
via bluetooth SCO (voice dialer, google now). When doing so,
the returned value of written bytes is the arbitrary number
192 when in fact all samples have been written.

Wrap Motorola's audio-HAL to overload write() and catch
that scenario and fix the return-value.

Also prevent changing of device-settings when a read/write
is in progress, as this might cause the operation getting
stuck when the device is disabled at the wrong moment.

This should fix sporadic audio-losses caused by changing
mixer-settings while playing/recording.

Change-Id: I8d2e27f67f224dfb48f00801a64c4586b22c70ac
Merge branch 'cm' into HEAD