android/client: Check if hex string is byte format

Data strings should be byte format.
android/hal-ipc-api: Add Handsfree client IPC API
android/hf_client: Import Android hf_client header

This header file has been taken from Codeaurora forum.
android/tester: Fix not handled ssp requests in AVRCP cases

Those were previously passing because of ssp handler being not cleaned
between test cases. This is now fixed in tester framework thus test cases
needs to be updated.
sdp-client: Extract cleanup function for cached session

Cleanup function will be used by next patch
sdp-client: Add disconnect watch for cached session

SDP client keeps sdp session alive for 2 more second after usage in case
there is need for reuse it. However, if ACL is disconnected and
reconnected during that time, sdp session becomes outdated. This patch
makes sure that cached sdp session will be cleaned up on ACL disconnect
sdp-client: Minor code style fix
android/avrcp: Clean up command order

Idea about order in this file is that commands goes first and
notifications in the end of file.

This patch moves AVRCP commands up in the file
shared/gatt-client: Introduce struct bt_gatt_characteristic_iter.

shared/gatt-client currently defines a service iterator which returns service
data in a copy. The user then accesses the service's characteristics by manually
going through an array of bt_gatt_characteristic_t.

This patch changes this by restricting access to individual characteristic
entries via a new characteristic iterator. This is done so that gatt-client code
can internally store private data on each characteristic (e.g. reference count
for notification sessions) which shouldn't be exposed to external code.

The code also changes the service iterator functions to return a pointer to an
internally stored bt_gatt_service_t structure rather than returning its contents
in a copy.
shared/gatt-client: Implement bt_gatt_client_register_notify.

This patch introduces the bt_gatt_client_register_notify and
bt_gatt_client_unregister_notify functions and implements the latter. The
bt_gatt_client_register_notify function does the following:

  - If the given characteristic has a CCC descriptor, it writes to it based on
    which notify/indicate properties are present in the characteristic
    properties bit field.

  - It maintains a per-characteristic count of how many callbacks have been
    registered, so that the CCC descriptor is written to only if the count is 0.

  - It stores the passed in callback and user data in bt_gatt_client, which will
    be invoked when a notification/indication is received from the corresponding
    characteristic.

  - It queues register requests if the count is 0 and a CCC write is pending,
    and processes them once the write request has completed.
shared/gatt-client: Implement bt_gatt_client_unregister_notify.

This patch implements bt_gatt_client_unregister_notify, which is used to remove
a previous registered notification/indication handler. This function decreases
the per-characteristic count of handlers, and if the count drops to 0, a write
request is sent to the CCC descriptor to disable notifications/indications.
shared/gatt-client: Handle incoming not/ind PDUs.

bt_gatt_client now registers an incoming PDU handler for notification and
indication PDUs. The PDU is parsed and routed to the notify handler registered
with bt_gatt_client_register_notify for the corresponding characteristic value
handle. A confirmation PDU is sent automatically for received indications.

This patch removes the bt_gatt_register function from shared/gatt-helpers.
tools/btgatt-client: Add the "register-notify" command.

This patch adds the "register-notify" command, which registers a
notification/indication handler for a given characteristic value handle.
tools/btgatt-client: Add "unregister-notify" command.

This patch adds the "unregister-notify" command which can be used to test the
bt_gatt_client_unregister_notify function.
TODO: Reference counted notify functions implemented
core: Fix storing connection parameters without store hint set

If store hint is not set those should not be stored persistently.
core: Remove not used device_set_conn_param function

This function is not used since connection parameters are stored from
adapter.c. Also remove no longer needed members from struct btd_device.
android/tester: Fix characteristic instance ID

Characteristics instance id starts from 1.
android/tester: Add GATT Get Characteristic 2 test case

It tests getting characteristics of non existing service.
android/gatt: Fix sending callback in get_characteristic

Notification should be send to client in case of error.