gatttool: fix parameter type/name from le to psm

The parameter le was changed to psm and its type was modified from
boolean to int, but header was unmodified. That change occurred in commit
0cc24599637ed6666469c68d55f4e42ff722e447.
gattrib: remove glib basic data types usage
GATT: remove glib basic data types usage
attrib: remove glib basic data types usage
gatttool: remove glib basic data types usage
attrib: simplify boolean tests

Remove unnecessary TRUE/FALSE in boolean tests.
attrib: removing gboolean usage when possible
attrib: Avoid passing raw PDU to Exchange MTU callback

By centralizing the PDU parsing and validation internally to GATT API,
the callbacks become simpler.
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.