audio: Fix missing gateway state check on Connect

If the gateway is already connected (or connecting) when Connect() is
called, an error should be returned, exactly as other interfaces do.
core: Mutually exclude concurrent connections

Since controllers don't support more than one ongoing connection
procedure at the same time, new connection attempts needs to yield if
there is an ongoing connection procedure already.
mgmt: Add LE scanning callback

This patch adds a new callback to allow the adapter to control LE
scanning. The current approach uses the active scanning with default
windows and intervals defined by the core spec without any filtering.
core: Replace interleaved by LE scanning

This patches replaces the interleaved discovery by LE scanning when LE
re-connection is required.
core: Start LE scanning when a device requests

This patch enables the LE scanning when a device requires connection and
there isn't discovery sessions, triggering the General Connection
Establishment Procedure.
core: Disable unnecessary auto connections

BlueZ host disconnects the link when encryption fails. ECONNABORTED
error is returned by the kernel when the connection is terminated by the
local host. This scenario commonly happens when authentication fails due
PIN or Key Missing.
core: Re-connect for ECONNRESET or ECONNABORTED

This patch keeps scanning and re-connections active if the disconnection
reason is ECONNRESET(Remote Initiated Disconnection).

Re-connection is a behaviour determined by Profiles or by the upper
layer(user actions). For instance, HoG requires re-connection always
active, no matter if the previous disconnection reason was page timeout
or remote initiated disconnection (ECONNRESET). Some devices disconnects
after some idle time, connectable advertises are sent by the peripheral
when commanded by the user(eg: key pressed). Disconnection can be also
triggered by the local host (ECONNABORTED) using command line tools or
Disconnect method in the Device interface.

The peripheral dictates the re-connection controlling the connectable
advertises, BlueZ(central) needs to keep the scanning always active to
able to detect the advertises and trigger the connection.
mgmt: Add address type to bonding debug message
core: Suspend scanning before connect on pairing

If there is a disconnected bonded device there will be a scanning
procedure active due to the General Connection Establishment Procedure.
This scan have to be suspended before trying to connect to the remote
device for pairing.
core: Fix freeing external profile record

The add_record_to_server function takes ownership of the service record
so it only needs to be freed if the function fails.
doc: Introduce Alert API

This API will be implemented and initially used by Phone Alert Status
and Alert Notification GATT profiles (server role).
alert: Introduce manager abstraction layer

This abstraction layer makes the GATT Phone Alert Status and Alert
Notification implementation consistent with other GATT profiles.
alert: Initial profile registration
alert: Add Phone Alert Status Service

Add Phone Alert Status service for PASP.
alert: Add Ringer Control Point characteristic

Ringer CP characteristic is used for configuring "silent mode" or muting
the ringer once.
alert: Add Ringer Setting characteristic

This characteristic allows to read or notify the ringer mode (silent or
normal).
alert: Add Alert Status characteristic

This characteristic allows to read/notify the status of the ringer,
display and vibration motor.
alert: Initial Alert Notification

Initial implementation for Alert Notification Profile (ANP).
alert: Implement category registration in RegisterAlert()

The given alert category is now validated and registered.
alert: Add initial support for NewAlert D-Bus method

NewAlert() is used for notifying BlueZ of new alert(s) for the given
category.