android: Fix compile error

During configure, if SBC is not installed in the system, we may use
SBC_CFLAGS and SBC_LIBS variables to indicate where SBC headers and
binaries can be found.

However, SBC_CFLAGS variable is not used in android/Makefile.am,
causing the following compile error:

$ ./bootstrap-configure SBC_CFLAGS=-I../sbc SBC_LIBS=-L../sbc/src/
$ make

(...)

android/hal-audio-sbc.c:22:21: fatal error: sbc/sbc.h: No such file or directory
 #include <sbc/sbc.h>
^
compilation terminated.
make[1]: *** [android/android_audio_a2dp_default_la-hal-audio-sbc.lo] Error 1

This patch fixes this error by appending SBC_CFLAGS to android_audio_
a2dp_default_la_CFLAGS.
gitignore: Add cscope files
android/client: Add properly print prefix for hex values

This patch fix print hex values by adding "0x" prefix.
android/client: Add additional support for handling hex values

This patch allows to handle properly hex values prefixed by "0x" or
"0X" as function parameter.
android/client: Fix handling hex test arguments

This patch allows to pass as argument hex and int values as test command
argument. Hex values must be prefixed by '0x' or '0X'.
android/gatt: Fix parallel reading/writing attributes values from applications

It is needed because in some cases we send few read requests to applications.
Now all transactions data are overriden by last one, and if application wants
to respond to previous requests, transaction data is not found.
It happens when two devices will read attribute from one application in the same
time or if device will read few values in time (i.e. read by type request or find
by type value request).
android/gatt: Fix state of pending request for prep write

State PENDING is used when we send request to upper layer and this is
how we do with prep write request
android/gatt: Handle prepare and execute write

Once remote device sends write execute we need to notify all the
server applications with this. Application will send response on this and
once we collect all the responses we should send execute write response
to remote device

This is initial version of handling execute write. Still many corner cases
have to be handled. Some of them seems to be not easy to solve with
existing BT HAL API e.g. BlueZ sends execute write to couple of server
applications and one of them reply with error. According to spec execute
write shall be atomic. In scenario that one server out of many replies
with error makes this write not atomic. There is no way to handle it with current
BT HAL API.
android/gatt: Set attrib MTU correctly

We should set g_attrib mtu with MIN of two values: Remote Rx MTU
and local Tx MTU. In previous solution once we set g_attrib mtu, we
could only reduce MTU (because we took previously set g_attrib MTU
and Remote Rx MTU). It affected cases when remote wanted to increase
MTU.
android: Add gatt CCC value storage

Client Characteristic Configuration for Service Changed Characteristic
should be stored for every bonded device, so we know if we should be
sending value (range affected by changes) indication.
android/gatt: Store CCC and indicate service change

We indicate service change on service stop and service start API calls.
Indication is also send when connecting to bonded device to force it
rebuilding its cache. Write request is properly handled on the response
queue know.
android/gatt: Make CCC descriptor readable

Descriptor unlike characteristic should be readable.
android/pts: Update GATT results

Update results for server's Service Changed Indication (CCC) tests.
unit/test-avrcp: Add /TP/RCR/BV-02-C test

To verify that the TG can handle fragmentation correctly.
unit/test-avrcp: Add /TP/RCR/BV-04-C test

To verify the TG can accept abort fragmentation correctly.
android/avctp: Add define for AV/C data MTU and offset

This defines the MTU and offset of AV/C data in AVCTP PDU.
android/avrcp-lib: Add fragmentation support

This adds handling for fragmentation if the PDU cannot fit into a AV/C
frame which can be up to 512 bytes or less depending on the L2CAP MTU
negotiated.
android/hal-audio: Always call qos_update

As it turned out, it's better to always call update_qos and just
provide dummy callback from codecs which do not support it.
android/hal-audio: Allow codec to init on startup

This patch adds optional load/unload methods for codec which can be
used to initialize some static data for codec, e.g. load shared library
which provides encoder. Unlike init/cleanup which are called on stream
open/close these methods are called when audio device is opened/closed
thus most likely only once.

Codecs which are loaded properly (or do not have load callback) are
added to separate queue and used later to register endpoints.
android/hal-audio-aptx: Add initial support for aptX codec

This patch adds support for aptX codec. Since this is proprietary codec
it requires to obtain license form vendor (CSR) in order to use it.
Also shared library which provices encoder implementation is required
since this implementation only wraps it into audio HAL.