unit: Add test for gatt_exchange_mtu()

The new unit/test-gatt.c file will contain tests for GATT API
implemented in attrib/gatt.{c,h}.
attrib: Rename gatt_find_info() to gatt_discover_char_desc()

The old name referred to the underlying ATT PDU (Find Information
Request and Find Information Response) and not to the actual GATT
procedure (Discover All Characteristic Descriptors).
attrib: Modify gatt_cb_t to return bool

The boolean return value will have the same semantics as GLib watches:
returning "true" will keep the GATT procedure going; returning "false"
will interrupt it (either due to an error or because the desired
information was found.)

This "early interruption" of GATT procedures is allowed by the spec and
avoids unnecessary data transfers, specially on large attribute
databases and when using small MTU values.
attrib: Fix memory leak on low memory condition

If g_try_new0() fails due to low memory condition, "list" should be
freed before returning from primary_all_cb().
unit: Add test for gatt_discover_primary()