emulator: Copy callback mechanism from atutil.h

atutil.h needs GAtChat and GAtResult definitions and we do not have
these definitions inside emulator.c.
include: Add ofono_emulator_set_removed_cb()
emulator: Add removed notification mechanism

This mechanism is used to notify when an emulator is about to be freed.
emulator: Change feature check to attend HFP 1.6

HFP 1.6 adds a new feature called Codec Negotitation. For the HF Role,
this feature is stored in the eighty bit of the supported features
bitmap.

This way, we need to change the range of valid HF feature bitmaps to
2^8-1.
hfp_ag_bluez5: Create a hash to store emulators

We need to store emulators so we can disconnect and free them at
RequestDisconnect().
hfp_ag_bluez5: Store emulator when connect

The emulator is stored after being registered.
hfp_ag_bluez5: Remove emulator when disconnect

When a RequestDisconnect() is received, the emulator must be both
disconnected and removed from the hash.

But an emulator can also be disconnected and freed automatically if its
GAtServer closes. In this case, the hash can hold an invalid pointer.

So, after the emulator is registered, a function is set to be called
when the emulator is about to be freed and this function removes the
emulator 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.