test: rename test/interactive to interactive-evdev

And share the key-printing functions. In preparation for adding more
interactive-* variants.

Signed-off-by: Ran Benita <ran234@gmail.com>
x11: add xkb_keymap_new_from_xserver()

This is a function to create an xkb_keymap directly from XKB requests
to the X server. This opens up the possibility for X clients to use
xcb + xcb-xkb + xkbcommon as a proper replacement for Xlib + xkbfile.

The X11 compatibility support must be enabled with --enable-x11 for now.
The functions are in xkbcommon/xkbcommon-x11.h. It depends on a recent
libxcb with xkb enabled.

Why not just use the RMLVO that the server puts in the _XKB_RULES_NAMES
property? This does not account for custom keymaps and on-the-fly keymap
modifications, so is not a proper solution in practice. Now the client
just needs to recreate the keymap in response to a change in the
server's keymap (as Xlib clients do with XkbGetUpdatedMap()).

The XKB requests we use are XkbGetMap, XkbGetCompatMap,
XkbGetIndicatorMap, XkbGetNames. We also use GetAtomName to resolve X
atoms.

Signed-off-by: Ran Benita <ran234@gmail.com>
x11: add a couple of tests

Add two tests:

    ./test/interactive-x11
which is like test/interactive-evdev, but should behave exactly like your
X keyboard and react to state and keymap changes - in other words, just
like typing in xterm. Press ESC to exit.

    ./test/x11
which currently should only print out the same keymap as
    xkbcomp $DISPLAY out.xkb
(modulo some whitespace and some constructs we do not support.)

Signed-off-by: Ran Benita <ran234@gmail.com>