core: Fix a double free on adapter_stop
core: Fix a double free on adapter_stop

The discovery_list list has the list of current discovery clients and is
removed on adapter_stop (for example due a "power off" command). The
g_slist_free_full will call discovery_free on every element of the list
and remove the nodes of the list, but discovery_destroy (called by
discovery_free) will not only free the element, but also remove it from
the list. This causes the list node to be freed twice, once by
g_slist_free_full and once by g_slist_remove.

This fix calls successively discovery_destroy and lets it remove the
list's elements one by one.

pstglia/external-bluetooth-bluez,pkarasev3/bluez,ComputeCycles/bluez,ComputeCycles/bluez,pstglia/external-bluetooth-bluez,mapfau/bluez,pstglia/external-bluetooth-bluez,ComputeCycles/bluez,silent-snowman/bluez,pkarasev3/bluez,pkarasev3/bluez,ComputeCycles/bluez,pstglia/external-bluetooth-bluez,silent-snowman/bluez,silent-snowman/bluez,pkarasev3/bluez,mapfau/bluez,silent-snowman/bluez,mapfau/bluez,mapfau/bluez