emulator: Add AT+BAC support

When the emulator receives a AT+BAC SET command, it stores the
available HF codecs.
emulator: Add AT+BCC support

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.
emulator: Setup codec connection

This commit sends an unsolicited +BCS command with the selected codec
when the AG receives with success an AT+BCC command.

Currently the codec is hardcoded to CVSD.
emulator: Receive AT+BCS response

This commit verifies if the codec id sent by HF is the same as
previous sent by AG.
emulator: Setup synchronous connection

After respond OK to AT+BCS, the AG should establish a synchronous
connection with HF.
emulator: Add Codec Negotiation feature

This commit adds Codec Negotiation to the list of AG features
supported by the emulator.
emulator: Copy callback mechanism from atutil.h

atutil.h needs GAtChat and GAtResult definitions and we do not have
these definitions inside emulator.c.
emulator: Implement AG card .Connect() for HFP 1.6
TEMP: Don't check Card.Connect() D-Bus sender