Generic plug-in for accessing pen-based tablets via evdev

To test, run the demo app from examples/widgets/tablet with the
command-line argument -plugin EvdevTablet

Known to work with 3rd generation Wacom Bamboo Pen & Touch. Recent
tablets like this one may need an updated wacom kernel driver for
kernels 3.2 and older.

Supports x, y, pressure, pen & eraser pointer types, proximity enter,
proximity leave. The additional advanced fields of QTabletEvent will
not be utilized.

Connecting the tablet will result in two input devices: one for finger
touch and the tablet buttons, and another for pen input including the
stylus buttons. This plugin cares about the latter only. For touch,
try the evdevtouch plugin.

The plugin generates QTabletEvents only. For compatibility with Qt 4,
TabletPress, Move and Release are only sent when the stylus is
touching the screen.

TabletEnterProximity and TabletLeaveProximity are always sent to the
QGuiApplication instance. Use an event filter (or subclass) to handle
these. In proximity events most of the data (incl. position) will be
left unspecified as these are mere indication of the fact that the
stylus entered the range of the tablet.

When running under X, it is likely that no events are received due to
the input device being grabbed. A temporary workaround is to disable
the device from X via
xinput set-prop <device> <device enabled property> 0.


TODO #1: Indicate motion when lifted but still in proximity. Needs new
event types.

TODO #1.1: Where to report ABS_DISTANCE? Needs a new QTabletEvent member
(unless we hijack z).

TODO #2: QKeyEvent from the stylus buttons (BTN_STYLUS, BTN_STYLUS2,
but there are no suitable Qt::Key_* constants?)

TODO #3: QKeyEvent in evdevtouch (or this plugin?) from tablet buttons
