gatt: Introduce helper for adding GATT services

This patch adds the btd_gatt_add_service() helper which adds a
GATT Service declaration to local attribute database.
gatt: Introduce helper for adding characteristics

This patch adds the btd_gatt_add_char() helper which adds a
characteristic (both declaration and value attributes) to local
attribute database.
gatt: Introduce helper for adding characteristic descriptors

This patch adds the btd_gatt_add_char_desc() helper which adds a
characteristic descriptor to local attribute database.
gatt: Introduce helper for removing services

This patch adds the btd_gatt_remove() helper which removes a
service (along with all its characteristics) from the local
attribute database.
gatt_lib: Add a way to request read by type over a range of handles

This introduces gatt_foreach_by_type(), which will allow to iterate
over a range of attributes of known types.

This will be mostly used for the new discovery of attributes.
device: Add a way to retrieve the device's attribute database
device: Add device_get_attrib()
gatt: Add stub for gatt_discover_attributes()
gatt: Add support for inserting Include declarations
gatt_lib: Add a way to call Find Information over a range
gatt: Insert the characteristics descriptors in the database
device: Discover all the attributes of a device
gatt: Register Attribute D-Bus interfaces
gatt: Add experimental flags to the D-Bus interfaces
gatt: Introduce helper for searching for services

This patch adds the btd_gatt_get_services() helper which searches for
services declarations with a specific UUID in an attribute database
and returns them.
gatt: Introduce helper for searching for characteristics

This patch adds the btd_gatt_get_chars_decl() helper which searches for
characteristics' declarations with a specific UUID from a specified
service in an attribute database and returns them.
gatt: Introduce helper for searching for characteristic descriptors

This patch adds the btd_gatt_get_char_desc() helper which searches for
a characteristic descriptor from a specific characteristic in an
attribute database and returns it.
gatt: Introduce helper for searching for characteristic values

This patch adds the btd_gatt_get_char_value() helper which searches
for the value of a specific characteristic in an attribute database
and returns it.
gatt: Introduce helper for reading attribute values

This patch adds the btd_gatt_read_attribute() helper which reads the
value from an attribute.
gatt: Introduce helper for writing in attribute values

This patch adds the btd_gatt_write_attribute() helper which writes in
the value from an attribute.