common: Add GsdDeviceMapper

This is an object attached to the default screen, meant to be used across
several g-s-d plugins. On one hand, it keeps track of monitors and their
layout/rotation/mode. On the other hand, g-s-d plugins tell GsdDeviceMapper
which GdkDevices will be handled by this object, so a monitor is chosen
to map the GdkDevice to, applying what we know about the input device.

The primary source to know the corresponding monitor is the configuration,
if an input device has a configured display in GSettings, and the monitor
is currently present, that will be the one the input device will map to.

When an input device has no settings, or an unconfigured monitor, multiple
things are checked in order to find out a good guess for the GdkDevice.
- System-integrated input devices go to the built-in output
- Several EDID checks are done for Wacom devices with a built-in screen
- Sanity checks are done on outputs with screen-integrated input devices,
  if a monitor already has a GdkDevice with similar capabilities (eg. a
  system-integrated pen), this output will be punted, so there is no
  accumulation of input devices.

If an output is found on some or other way, the GdkDevice will be
mapped to that output, and follow it if the display configuration
changes, or device left/right handedness changes.

https://bugzilla.gnome.org/show_bug.cgi?id=709600
xrandr: Use GsdDeviceMapper to rotate touscreens

The Xrandr module was previously in charge of rotating touchscreens,
although it did so in a limited number of cases (eg. only through fn-F7,
not through the g-c-c panel), and didn't do anything to map touchscreens
to the right output if multiple monitors are present, so touchscreens
would be left mapped to the whole span of monitors.

Fix this by using GsdDeviceMapper, so touchscreen mapping is managed by
that object. The Xrandr module still gets to manage what/whether
touchscreens get added to the mapper.

https://bugzilla.gnome.org/show_bug.cgi?id=709600
wacom: Use GsdDeviceMapper

Offload device mapping to this object, that has more elaborate
heuristics to find out the (most suitable) monitor to map an
input device to.

https://bugzilla.gnome.org/show_bug.cgi?id=709600