core/device: Fix crash while freeing services list
core/device: Fix crash while freeing services list

btd_service do alter its state on service_remove which can cause
plugins to attempt to access services list which may have freed some
services already.

To fix this the code now updates the list in place so the services are
first removed from services list before calling service_remove.

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