gatt: Fix adding attribute when interface registration fails

bluetoothd[1206]: Unable to register service interface for
/org/bluez/hci0/dev_00_02_72_32_63_A5/service1
==1206== Invalid read of size 2
==1206==    at 0x80CA717: attribute_cmp (gatt.c:372)
==1206==    by 0x4078442: g_list_insert_sorted_real (glist.c:924)
==1206==    by 0x80CA75E: remote_database_add (gatt.c:379)
==1206==    by 0x80CCE91: new_const_remote_attribute (gatt.c:1600)
==1206==    by 0x80CD173: prim_service_create (gatt.c:1697)
==1206==    by 0x80A27AC: read_by_type_cb (gatt.c:1278)
core: Fix not storing LE devices

This patch fixes missing storage of the device address type and other
device information for LE devices.
gatt: Access database in right order
gatt-findme: Collect list of services
gatt-findme: Collect list of characteristics
gatt-findme: Check if service is Immediate alert type
gatt-findme: Add timer to search for the alert level characteristic
gatt-findme: Write new Alert Level value
gatt-findme: Simplify and cleanup code

This code is meant to be used as API example, therefore it needs to be
as simple as possible (while still fully functional).
gatt-findme: Store only IAS service

Simplify code by collecting only the IAS service instead of a list of
all services.
gatt-findme: Implement support for -i option

If no -i option is given, use the first adapter found. If no adapter is
found, print an error message.
gatt-findme: Remove check for Discovering property

To keep things simple, assume that there is not discovery in progress.