compositor-drm: Fail, and fail early if we can't set up the tty

Typically a permissions problem.  Weston should be setuid root or
be launched by a setuid helper.
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 0d2fc57..8f6c8fc 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -840,6 +840,14 @@
 		return NULL;
 	}
 
+	ec->base.wl_display = display;
+	ec->tty = tty_create(&ec->base, vt_func, tty);
+	if (!ec->tty) {
+		fprintf(stderr, "failed to initialize tty\n");
+		free(ec);
+		return NULL;
+	}
+
 	e = udev_enumerate_new(ec->udev);
 	udev_enumerate_add_match_subsystem(e, "drm");
 	udev_enumerate_add_match_sysname(e, "card[0-9]*");
@@ -865,7 +873,6 @@
 		return NULL;
 	}
 
-	ec->base.wl_display = display;
 	if (init_egl(ec, drm_device) < 0) {
 		fprintf(stderr, "failed to initialize egl\n");
 		return NULL;
@@ -901,7 +908,6 @@
 	ec->drm_source =
 		wl_event_loop_add_fd(loop, ec->drm.fd,
 				     WL_EVENT_READABLE, on_drm_input, ec);
-	ec->tty = tty_create(&ec->base, vt_func, tty);
 
 	ec->udev_monitor = udev_monitor_new_from_netlink(ec->udev, "udev");
 	if (ec->udev_monitor == NULL) {