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 attributes values

This patch adds the btd_gatt_write_attribute() helper which writes in
the value from an attribute.
gatt: Introduce helper for registering a notifier

This patch adds the btd_gatt_add_notifier() helper which registers a
notifier to be warned when the specified attribute's value changes.
gatt: Introduce helper for unregistering a notifier

This patch adds the btd_gatt_remove_notifier() helper which unregisters
a previously registered notifier for an specific attribute.