gatt: Introduce attribute read cb for GATT client

This patch adds the callback function to be called when a GATT client
application reads the attribute value. Its implementation calls
gatt_read_char(), that also handles values that does not fit into a
PDU.
TO SQUASH: Use g_list_find instead of find_custom
gatt: Implement D-Bus ReadValue
core: Add getter and setter for attribute database

The getter has a btd_ prefix so it is clear that even profiles are allowed to
call it. The setter should only be used from the core.

This allows for some simplification of the database management code.
gatt: Check characteristic properties

Verify the characteristic properties before registering the read/write
callbacks.
gatt/gap: Add new file for gatt/gap plugin

This patch adds a new file to implement the gatt/gap plugin based on
the new ATT API. In the future the old implementation must be removed.
gatt/gap: Add profile driver init and remove

This patch adds stubs for probe and remove gatt/gap devices.
gatt/gap: Read Device Name Characteristic

This commit adds logic to discover Device Name Characteristic from
GAP Service, read it and set the btd_device name using the response.
gatt/gap: Read Appearance Characteristic

This commit adds logic to discover Appearance Characteristic from
GAP Service, read it and set the btd_device appearance using the
response.
gatt: Add offset parameter to gatt_write_char()

This patch adds an "offset" parameter to gatt_write_char() to allow
the user to write using an offset even when the value is smaller than
the PDU size.
gatt: Introduce attribute write cb for GATT client

This patch adds the callback function to be called when a GATT client
application writes into the attribute value. Its implementation calls
gatt_write_char(), that also handles values that does not fit into a
PDU.
gatt: Implement D-Bus WriteValue

This patch implements the method WriteValue
from org.bluez.gatt.Characteristic1 interface.