compositor: Move add_globals to initialize
evdev_device: Use libevdev properly

Now sync events are dealt with correctly.
launch: Add support for {,de}activate events

- Move launch-related code from util.c to launch.c
- Add a launch event signal for session activation and deactivation
  events.
- Add a serial to launch requests so we can correctly process input from
  the launcher.
Add some copyright notices
util: Remove obsolete swc_double_buffer
Initialize bindings before compositer

The compositor adds some key bindings of its own, so bindings must be
initialized beforehand.
evdev_device: Move add_event_sources to initialize
evdev_device: Fix error handling
evdev_device: Fix reopen
seat: Reopen devices on session activation
compositor: Send frame event when any screen the view is on flips

This way, if the monitors happen to flip at opposite times, the surface
still receives frame events.
launch: Start devices after acknowledging VT acquire
compositor: Rework schedule_updates
Use global compositor state
framebuffer_plane: Keep track of when a modeset is needed
framebuffer_plane: When using SetCrtc, send frame events on idle rather than immediately

This way, when the compositor is updating the screens, it doesn't
receive frame events before the update finishes.
compositor: Handle session {,de}activation (VT switching)
output: Check to make sure resource creation succeeds
bindings: Check for bindings using both current shift-level and first shift-level

This way, a binding such as XKB_KEY_XF86Switch_VT_1 (which relies on the
current shift level), and bindings such as Ctrl-Shift-2 or Ctrl-Alt-F1
all work correctly.
compositor: Add copyright notices