shared/queue: Handle NULL as direct match on queue_remove_if

As with queue_find when function is set to NULL use direct_match as
callback.
diff --git a/src/shared/queue.c b/src/shared/queue.c
index 5ddb832..60df111 100644
--- a/src/shared/queue.c
+++ b/src/shared/queue.c
@@ -280,9 +280,12 @@
 {
 	struct queue_entry *entry, *prev = NULL;
 
-	if (!queue || !function)
+	if (!queue)
 		return NULL;
 
+	if (!function)
+		function = direct_match;
+
 	entry = queue->head;
 
 	while (entry) {