hfp_ag_bluez5: 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.
include: Add ofono_emulator_create_card()
emulator: Add Handsfree Audio Card to emulator
emulator: Register card when establish SLC
hfp_ag_bluez5: Create card for emulator when connect
emulator: Set local and remote address of card
hfp_ag_bluez5: Pass fd to card creation

We can extract local and remote address from the file descriptor.
emulator: Add init and cleanup functions
main: Call emulator init and cleanup functions
emulator: Add a Card driver for HFP 1.6

This is just the skeleton of a Handsfree Audio Card for the AG side of
HFP 1.6.
emulator: Set card driver

If the version is 1.6, passes the corresponding card driver name. If
not, passes NULL.
hfp_ag_bluez5: Pass HFP version to card creation

Extracts the version from the fd_properties dictionary, if present.
Fallback to HFP version 1.5 if not present.

After that, passes it to the card creation.
hfp_ag_bluez5: Register HFP AG version 1.6
emulator: Add Codec Negotiation feature

This commit adds Codec Negotiation to the emulator's list of features.
emulator: Add AT+BAC support

When the emulator receives a AT+BAC SET command, it stores the
available HF codecs.
emulator: Keep information about AT+BAC calls

The AG must only init the codec negociation procedure if the HF has
already sent an AT+BAC command in the current Service Level Connection.
emulator: Respond to AT+BCC command

This commit verifies the conditions where the AT+BCC command will fail.

The codec connection setup is missing.
include: Add g_at_server_register_response()
gatserver: Implement g_at_server_register_response

Certain AT commands only make sense if received in response to another
AT command, and this is especially important when sending unsolicited
commands that receives responses. But there is no mechanism on
gatserver side that allows to implement this behavior.

This commit adds a function which indicates what AT command the
gatserver is expecting. If the next command is not the desired one,
then a ERROR command is sent.