handsfree-audio: Add debug logging

Print debug messages when Handsfree Audio Agent registers or unregisters
itself.
hfp_hf_bluez5: UUIDs can change after Pairing

For example, in the case of a remote-initiated pairing, the device may
be created and Paired first, then the UUID array is emitted later.
phonesim: Include hfp.h
hfp_ag_bluez5: Include hfp.h
hfp: Move HFP versions definitions to hfp.h

hfp.h should store all HFP related definitions.
hfp_ag_bluez5: Remove unused includes
hfp_ag_bluez5: Create a hash to store connections

We need to store active connections so we can disconnect them at
RequestDisconnect().

When we remove a connection from the hash, we also close it.
hfp_ag_bluez5: Add watch for G_IO_HUP when connect

A watch to G_IO_HUP is added to remove the file descriptor when the
emulator is automatically disconnected when its GAtServer closes.

We use a dupped file descriptor because the events aren't delivered to
the file descriptor who originated them.
hfp_ag_bluez5: Implement RequestDisconnection()

When a RequestDisconnect() is received, the socket must be closed.
This way, the related emulator will be freed.
doc: Add EchoCancelingNoiseReduction to Handsfree

This patch adds echo canceling and noise reduction property to Handsfree
interface, allowing the handsfree unit to disable this feature in the
audio gateway. The HFP spec defines the procedure to turn off echo
canceling and noise reduction only, it is not allowed to enable this
feature from the HF unit.

According to Bluetooth HFP 1.6 spec: By default, if the AG supports its
own embedded echo canceling and/or noise reduction functions, it shall
have them activated until the AT+NREC command is received from the HF
unit. From then on, and until the current Service Level Connection is
dropped for any reason, the AG shall disable these functions every time
an Audio Connection is established.
core: Add "echo-canceling-and-noise-reduction"

This patch adds "echo-canceling-and-noise-reduction" to "Features"
property of the Handsfree interface.
core: Add EchoCancelingNoiseReduction to GetProperties

This patch adds EchoCancelingNoiseReduction property to GetProperties
method of Handsfree interface.
core: Set EchoCancelingNoiseReduction to TRUE by default

According to Bluetooth HFP spec: By default, if the AG supports its
own embedded echo canceling and/or noise reduction functions, it shall
have them activated until the AT+NREC command is received. The
configuration set by the HF shall by used by the AG while the Service
Level Connection is active.

Since there isn't a command to query the current value, it is being
assumed that Echo Canceling and Noise Reduction is enabled when the
connection is established and the gateway supports this feature.
include: Add disable_nrec to handsfree driver

This patch extends the handsfree driver adding echo canceling and noise
reduction callback to allow disabling this feature in the audio gateway.
hfpmodem: Add EchoCancelingNoiseReduction

This patch adds echo canceling and noise reduction implementation to
hfpmodem. It adds the implementation to send the command "AT+NREC=0"
to the AG.
core: Add SetProperty for EchoCancelingNoiseReduction

This patch extends SetProperty method of the Handsfree interface
allowing to disable echo canceling and noise reduction feature in
the audio gateway through a D-Bus method call. Once disabled, it
is not allowed to enable it using this procedure.
bluez5: Unify bt_register_profile_* into a single function

It was a cause of confusion for little gain to have separate
functions for registering profiles with extra information, for
example "role" and "features". We remove those helper functions
in favor of a single one with more parameters, "role" and
"feature" when NULL, will be ignored.
hfp: Add defines for HFP SDP feature bits
hfp_hf_bluez5: Register the SDP record with correct features
Revert "hfp_hf_bluez5: UUIDs can change after Pairing"

This reverts commit 456b8c9723b9b73c3ea4cadc8c6f84ca90675f9a.