Update to new fd and wl_registry APIs

This commit updates the clients and the wayland compositor backend to
use the new wl_registry mechanism and the thread safe fd API.
diff --git a/clients/weston-info.c b/clients/weston-info.c
index 95e45b1..edd826e 100644
--- a/clients/weston-info.c
+++ b/clients/weston-info.c
@@ -88,6 +88,7 @@
 
 struct weston_info {
 	struct wl_display *display;
+	struct wl_registry *registry;
 
 	struct wl_list infos;
 	bool roundtrip_needed;
@@ -264,7 +265,8 @@
 	init_global_info(info, &seat->global, id, "wl_seat", version);
 	seat->global.print = print_seat_info;
 
-	seat->seat = wl_display_bind(info->display, id, &wl_seat_interface);
+	seat->seat = wl_registry_bind(info->registry,
+				      id, &wl_seat_interface, 1);
 	wl_seat_add_listener(seat->seat, &seat_listener, seat);
 
 	info->roundtrip_needed = true;
@@ -293,7 +295,8 @@
 	shm->global.print = print_shm_info;
 	wl_list_init(&shm->formats);
 
-	shm->shm = wl_display_bind(info->display, id, &wl_shm_interface);
+	shm->shm = wl_registry_bind(info->registry,
+				    id, &wl_shm_interface, 1);
 	wl_shm_add_listener(shm->shm, &shm_listener, shm);
 
 	info->roundtrip_needed = true;
@@ -350,8 +353,8 @@
 
 	wl_list_init(&output->modes);
 
-	output->output = wl_display_bind(info->display, id,
-					 &wl_output_interface);
+	output->output = wl_registry_bind(info->registry, id,
+					  &wl_output_interface, 1);
 	wl_output_add_listener(output->output, &output_listener,
 			       output);
 
@@ -369,8 +372,8 @@
 }
 
 static void
-global_handler(struct wl_display *display, uint32_t id,
-	       const char *interface, uint32_t version, void *data)
+global_handler(void *data, struct wl_registry *registry, uint32_t id,
+	       const char *interface, uint32_t version)
 {
 	struct weston_info *info = data;
 
@@ -384,6 +387,10 @@
 		add_global_info(info, id, interface, version);
 }
 
+static const struct wl_registry_listener registry_listener = {
+	global_handler
+};
+
 static void
 print_infos(struct wl_list *infos)
 {
@@ -406,9 +413,8 @@
 
 	wl_list_init(&info.infos);
 
-	wl_display_add_global_listener(info.display,
-				       global_handler,
-				       &info);
+	info.registry = wl_display_get_registry(info.display);
+	wl_registry_add_listener(info.registry, &registry_listener, &info);
 
 	do {
 		info.roundtrip_needed = false;