gatt: Fix missing reply for Connect() or ConnectProfiles()

This patch fixes a missing D-Bus message reply for Connect() or
ConnectProfiles() gets called but incoming bonding fails.
core: Fix wrong when bonding retry fails

This patch fixes a wrong message for device Pair() or Connect() when
device bonding retry fails.
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: Create function for reading boolean D-Bus properties
gatt-findme: Do not check for Discovering before StartDiscovery()

Assume that adapter is not in discovery state. Instead, check that we
are discovering before calling StopDiscovery().
gatt-findme: Only activate timer after connected

Without this fix, if connection establishment takes too long, the timer
is triggered before services are discovered.
gatt-findme: Remove adapter checks on timer

These checks are not valid anymore now that the timer is only triggered
after device is connected (therefore an adapter is always present).

Instead print debug messages when adapter is found.
gatt-findme: Remove StopDiscovery() code

It is actually not necessary to run StopDiscovery(), as BlueZ does this
for us when the app leaves the bus.
gatt-findme: Power on adapter before discovery
gatt: Fix leaking GATT service discovery resources