screenrecord: Add audio support

Adds audio recording to the screenrecord system. Note that
while recording, the audio is muted from the device output,
and that the audio volume is controlled separately (so make
sure to turn up your volume if you hear nothing).
Audio from the microphone can also be recorded by adding
--microphone to the command line.

Change-Id: I97dfcaf3d93b786c5466e1f4215549e3d015bcf0
screenrecord: Enable SUBMIX_IN as well and cleanup on exit

While on Nexus 5/Nexus 7 (AOSP QCOM audio), trying to turn on
SUBMIX_IN fails and is not needed, it is required on Find 5
and N1 (CAF QCOM audio), or otherwise SUBMIX_OUT won't turn
on.
We also now release the audio routing as it wouldn't revive
the audio speakers otherwise.

Change-Id: I0f80a232304733e0b0a834b188b8cfa5b88915f3
AudioMixer: fix artifact on 2 short sounds

On multiple devices, when 2 short sounds are played simultaneously, there will be artifact
on the speaker due to the buffer not being cleared.

A common example of this is lockscreen sounds during music playback.

Change-Id: Ifcdbbd7e443aa78ef392f14003d498404f2e4d3a
Fixes for mic and A/V issues on capri based devices

[PATCH 1/2] OMXCodec: set default input buffer size

Broadcom OMX only set the buffer size to 65536 by default which
is not enough for higher bitrate video

[PATCH 2/2] OMXCodec: set default input buffer size only for BCM
decoder

Needed for capri based i9082 device .

Change-Id: Iee5d02829da46f91a326c0fab3e60996af55a1f9
Screenrecord: allow force mic for audio

Some older devices audio blobs do not support audio submix,
allow those devices to force using the mic for audio while
screenrecording.

Change-Id: Ief3a14e00d0bf32cc131742fb82556621f54be36