mgmt-api: Add missing error code descriptions
mgmt: Fix error code passed to bonding_complete in disconnect_complete

bonding_complete expects mgmt status code not hci error code.
gatt: Remove reading Service Changed characteristic after connected

Service Changed characteristic is a control-point attribute thus it
cannot be read and attempting to do so will fail. Instead, server shall
send indication once enabled in CCC.

This change is due to "Erratum 3833 - Service Changed" (ESR05) which
changed characteristic value properties from 0x26 to 0x20.
gatt: Remove unneeded handle range check

Since the Service Changed is a read-only control point, it not necessary
to compare the previous value read. This logic was added to compare the
result of the read operation with the received indications. Repeated
indications containing the same range is a valid procedure.
gatt: Ignore Service Changed if not bonded

This patch fix replying for Service Changed indication when the device
is not bonded. From Erratum 3951: Indications caused by changes to the
Service Changed Characteristic Value shall be considered lost if the
client has not enabled indications the Client Configuration
Characteristic Descriptor.
gatt: Add storing Service Changed handle

This patch stores the Service Changed control-point handle in order to
be able to listen for Service Changed indications when the connection
is established.
gatt: Add reading stored Service Changed handle

This patch avoids discovering Service Changed handle when the ATT
connection is established and there is a previous stored handle.
gatt: Remove offset parameter from gatt_read_char

The Core spec allows to implement Read Long Characteristic Value as a
Read Request, followed by zero or more Read Blob Requests, therefore the
offset parameter is unnecessary and is always 0 for normal use.
core: Track probed adapters for profiles
core: Add proper adapter_remove callback for external profiles
core: Add btd_profile parameter to profile disconnect callback
core: Fix profile cleanup when removing or disconnecting
core: Add skeleton for connecting external profiles
build: Update glib dependency to 2.32

This version of the library adds several convenient features such as
g_queue_free_full.
adapter: Replace device authorizing flag

Refactor code to drop the device authorizing flag by replacing it with a
private authorization pointer in btd_adapter. After all, no more than
one authorization can be ongoing, so the code is easier to follow if
this is made explicit.
adapter: Use authorization id for cancelling

Return a request id in btd_request_authorization() in order to be used
when the request needs to be cancelled. This id alone will be enough to
use btd_cancel_authorization().
adapter: Queue parallel authorization requests

Remote device could try to connect several profiles in parallel, or
several devices could be trying to connect services. Instead of
returning EBUSY, this patch adds a queue to each adapter such that the
authorization requests will be queued and processed sequentially.
audio: Drop audio-specific authorization mechanism

Remove the audio-specific service authorization mechanism in favor of
using the conventional one.

The main difference is that audio profiles will be authorized
independently. Therefore a single connection might result in several
profile authorization requests to the agent (i.e. HFP, A2DP and AVRCP).

This removes any internal policy that would skip the authorization
procedure, making it simpler and more convenient for IVI use-cases.

Agents interested in simulating the old behavior are encouraged to
either set the device as trusted or just reply to the additional
authorization requests automatically without user intervention.