Fix not removing all timers when user request to disconnect audio

This timers can trigger reconnections which is not a desirable behavior
diff --git a/audio/device.c b/audio/device.c
index eff8231..6b93b36 100644
--- a/audio/device.c
+++ b/audio/device.c
@@ -186,6 +186,20 @@
 	dev->priv->control_timer = 0;
 }
 
+static void device_remove_avdtp_timer(struct audio_device *dev)
+{
+	if (dev->priv->avdtp_timer)
+		g_source_remove(dev->priv->avdtp_timer);
+	dev->priv->avdtp_timer = 0;
+}
+
+static void device_remove_headset_timer(struct audio_device *dev)
+{
+	if (dev->priv->headset_timer)
+		g_source_remove(dev->priv->headset_timer);
+	dev->priv->headset_timer = 0;
+}
+
 static void disconnect_cb(struct btd_device *btd_dev, gboolean removal,
 				void *user_data)
 {
@@ -200,10 +214,12 @@
 
 	priv->disconnecting = TRUE;
 
-	if (dev->control) {
-		device_remove_control_timer(dev);
+	device_remove_control_timer(dev);
+	device_remove_avdtp_timer(dev);
+	device_remove_headset_timer(dev);
+
+	if (dev->control)
 		avrcp_disconnect(dev);
-	}
 
 	if (dev->sink && priv->sink_state != SINK_STATE_DISCONNECTED)
 		sink_shutdown(dev->sink);
@@ -307,13 +323,6 @@
 	return TRUE;
 }
 
-static void device_remove_avdtp_timer(struct audio_device *dev)
-{
-	if (dev->priv->avdtp_timer)
-		g_source_remove(dev->priv->avdtp_timer);
-	dev->priv->avdtp_timer = 0;
-}
-
 static gboolean headset_connect_timeout(gpointer user_data)
 {
 	struct audio_device *dev = user_data;
@@ -350,13 +359,6 @@
 	return TRUE;
 }
 
-static void device_remove_headset_timer(struct audio_device *dev)
-{
-	if (dev->priv->headset_timer)
-		g_source_remove(dev->priv->headset_timer);
-	dev->priv->headset_timer = 0;
-}
-
 static void device_avdtp_cb(struct audio_device *dev, struct avdtp *session,
 				avdtp_session_state_t old_state,
 				avdtp_session_state_t new_state,