Fix possible invalid read when removing a temporary device

An invalid read may happens when doing the reverse service discovery but
for some reason the device disconnects with the temporary flag set which
will make the device to be removed without cancelling the service.
diff --git a/src/device.c b/src/device.c
index a2730ab..dfdacd8 100644
--- a/src/device.c
+++ b/src/device.c
@@ -239,6 +239,9 @@
 	if (device->disconn_timer)
 		g_source_remove(device->disconn_timer);
 
+	if (device->discov_timer)
+		g_source_remove(device->discov_timer);
+
 	debug("device_free(%p)", device);
 
 	g_free(device->authr);