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