shell: Implement "driver" method of fullsceen.

Switching display mode may happen when:
1. The fullscreen surface is at top most in fullscreen layer and with
   "driver" method. Shell will switch output mode to match the surface
   size. If no matched mode found, fall back to "fill" method.
2. The top fullscreen surface is destroyed or unset. Switch back to the
   origin mode.
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
index 93094b0..afd9121 100644
--- a/src/compositor-wayland.c
+++ b/src/compositor-wayland.c
@@ -456,6 +456,7 @@
 	/* FIXME: add shell_surface listener for resizing */
 	wl_shell_surface_set_toplevel(output->parent.shell_surface);
 
+	output->base.origin = output->base.current;
 	output->base.repaint = wayland_output_repaint;
 	output->base.destroy = wayland_output_destroy;
 	output->base.assign_planes = NULL;