Re-init VNC extension on server reset

fc23895 blocked out a bit too much code when trying to make
libvnc handle server resets. Even though configuration should
only be handled once, the underlying VNC extension needs to
be reinitilised as the X core has removed all extensions on
reset.
Let XserverDesktop handle syncing cursor position

This makes InputDevice cleaner and just a glue layer for Xorg
input devices.
Move all functions that InputDevice uses into the class
Make InputDevice into a singleton

Xorg input devices are global so it doesn't make sense that we
have one InputDevice object per XserverDesktop.
Remove private storage from InputDevice

We don't need this anymore as we now only have a single
InputDevice object and can easily refer to it directly.
Handle closing of input devices

The core can decide to close an input device (e.g. during a
server reset). Make sure we respect this by forgetting about
the device and recreating it again later.