Fix disconnection timer removal when a device disconnects unexpectedly

To avoid spurious HCI Disconnect commands the disconnect timer should be
removed if the device disconnects earlier than expected.
diff --git a/src/device.c b/src/device.c
index 17e4ea1..513a813 100644
--- a/src/device.c
+++ b/src/device.c
@@ -765,6 +765,11 @@
 
 	device->handle = 0;
 
+	if (device->disconn_timer > 0) {
+		g_source_remove(device->disconn_timer);
+		device->disconn_timer = 0;
+	}
+
 	while (device->disconnects) {
 		DBusMessage *msg = device->disconnects->data;