client: Restructure delete_id handler control flow

This makes it easier for future patches in the series, which can
possibly return NULL for extant map entries.

[daniels: Extracted from Derek's bespoke-zombie patch as an intermediate
          step.]

Reviewed-by: Daniel Stone <daniels@collabora.com>
diff --git a/src/wayland-client.c b/src/wayland-client.c
index 8fc5634..83f76ec 100644
--- a/src/wayland-client.c
+++ b/src/wayland-client.c
@@ -836,13 +836,12 @@
 
 	proxy = wl_map_lookup(&display->objects, id);
 
-	if (!proxy)
-		wl_log("error: received delete_id for unknown id (%u)\n", id);
-
-	if (proxy && !wl_object_is_zombie(&display->objects, id))
+	if (wl_object_is_zombie(&display->objects, id))
+		wl_map_remove(&display->objects, id);
+	else if (proxy)
 		proxy->flags |= WL_PROXY_FLAG_ID_DELETED;
 	else
-		wl_map_remove(&display->objects, id);
+		wl_log("error: received delete_id for unknown id (%u)\n", id);
 
 	pthread_mutex_unlock(&display->mutex);
 }