hfp_ag_bluez5: Create a hash to store connections

We need to store active connections so we can disconnect them at
RequestDisconnect().
hfp_ag_bluez5: Store fd in hash when connect

The file descriptor is stored after the emulator is registered.
hfp_ag_bluez5: Remove fd from hash when disconnect

When a RequestDisconnect() is received, the file descriptor must be
closed. This way, the related emulator will be freed.

But the emulator can also be disconnected automatically if its
GAtServer closes. In this case, the hash will hold an invalid file
descriptor.

So, after the emulator is registered, we watch for G_IO_HUP in
the corresponding file descriptor. If this condition happens, we
can safely remove the file descriptor from the hash.
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
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
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.