input: Fix errors due to initializing input before creating outputs

Make sure that we don't map a device to an invalid output pointer and
intead remap devices when an output is created.

v2: fix the error with libinput too.
diff --git a/src/libinput-device.c b/src/libinput-device.c
index 753583a..4605a76 100644
--- a/src/libinput-device.c
+++ b/src/libinput-device.c
@@ -264,7 +264,7 @@
 	struct weston_compositor *c = device->seat->compositor;
 	struct weston_output *output;
 
-	if (!device->output_name) {
+	if (!device->output_name && !wl_list_empty(&c->output_list)) {
 		output = container_of(c->output_list.next,
 				      struct weston_output, link);
 		evdev_device_set_output(device, output);