bluetooth: Add new Bluetooth header

This patch moves the Bluetooth utility funtions and socket type
declarations to a new header src/bluetooth.h, allowing to share it
between core, and plugins.
 handsfree-audio: Move SCO to handsfree-audio.c

 This patch moves the SCO socket handling from hfp_hf_bluez5 plugin to
 handsfree-audio.c file.

 This is the initial step to be able to support sending the file
 descriptor through the Agent NewConnection method.
handsfree-audio: Remove modem dependency

This patch replaces the handsfree modem verification by the Audio Card.
Audio Cards are created when the RFCOMM fd descriptor is received, and
registered when the service level connetion is established.
handsfree-audio: Add NewConnection

This patch adds Agent NewConnection call. The card object path, the SCO
file descriptor, and the codec are being passed to the agent. This
initial version supports CVSD codec only.
handsfree-audio: Check local SCO address

This patch verifies if the local Bluetooth address of the incoming
connection also matches with one of available audio cards.
handsfree-audio: Reject SCO if Card is not ready

The Audio Card is being created when the NewConnection from BlueZ
Profile is received, and registered when the service level connection
negotiation finishes. This patch rejects SCO connection if the SCO
incoming connection arrives when the service level negotiation is
ongoing.
handsfree-audio: Reject SCO if agent is unavailable

This patch rejects the incoming SCO connection if there isn't a
Handsfree Audio Agent registered.
handsfree-audio: Check CVSD when registering agent

This patch makes CVSD codec mandatory when registering a Handsfree
Audio Agent.
handsfree-audio: Add function to get hfp version

This patch adds a new function to read the local supported Handsfree
Profile version.
hfp_hf_bluez5: Fix hard-coded hfp version

This patch removes the hard-coded Handsfree Profile version to register
the external BlueZ profile.
WIP: bluetooth: Move HFP version enum to bluetooth.h

Work in progress: maybe it is useless since GAtChat will be required
to trigger SCO connection for HFP 1.6
test: Create simple-handsfree-audio-agent

This python tool implements the org.ofono.HandsfreeAudioAgent interface,
dealing with the SCO file descriptor passed by the Handsfree Audio
Manager.
handsfree-audio: Move codecs to handsfree-audio.h

This patch moves the supported HFP codecs to handsfree-audio.h since it
will be shared between core, and plugins.
handsfree-audio: Add HFP_MAX_SUPPORTED_CODECS
handsfree-audio: Add function to get the codecs

This patch adds a new handsfree-audio public function to read the
available codecs registered by the agent.
hfpmodem: Send AT+BAC with the supported codecs

Before, the AT+BAC command was being sent with fixed information,
now we send the command (that inform the AG of the codecs supported by
the HF) with the codecs that come from the profile implementation.
hfpmodem: Add codec watcher register

This patch adds a function to monitor when the AG sends a new codec
before establishing the SCO connection.
hfpmodem: Add codec watcher unregister
hfp_hf_bluez5: Register codec watcher
handsfree-audio: Add function to select the codec

This patch adds a public function to select the active codec in the
Audio Card. The AG informs the HF which codec ID is to be used before
establishing the Synchronous Connection. The selected codec is input
to set properly the SCO parameters.