Added support for pointer events and hide the system pointer.

Created classes xbmc::wayland::Pointer to wrap wl_pointer and
xbmc::PointerProcessor implementing xbmc::wayland::PointerListener
which contains the logic for converting wayland button and pointer
events into xbmc events.

Made xbmc::wayland::Seat wait for a pointer to appear and initialize
a pointer in WaylandInput.

Call wl_pointer_set_cursor as soon as the pointer enters our surface
as it is undefined before that.
Listen for a new wl_keyboard from wl_seat_listener and create an
XKBKeymap implementing wayland::Keymap. This class keeps track
of the keyboard state and MUST be updated every time a modifier or
a key is pressed (eg, every time we get an event from the protocol).

KeyboardProcessor implements the logic of converting XKB keysyms to
XBMC keysyms. It also changes the focus state of the window and
delivers key events to the XBMC event subsystem.

TimeoutManager and WaylandEventLoop are just a simple abstraction for
adding timeouts to the poll () / wl_display_dispatch () mainloop, in
place so that we can implement key repeat
Read or dispatch events in a separate thread.

MessagePump() should not be a blocking operation

Because wl_display_read_events was only introduced in wayland 1.2, we need
to support two methods of making MessagePump() nonblocking.

version_11::EventQueueStrategy dispatches the whole event queue and gathers
the resulting XBMC_Events or other messages wrapped up into Action functors
in its reader thread. It then dispatches these to XBMC in the main thread.

version_12::EventQueueStrategy simply reads the wayland connection fd and
then flushes the output buffer and dispatches any read events in the
main thread.

In either version, the wayland listeners may be running in a separate thread.

As such, there is no guaruntee that it is safe to mutate the state of
objects in the xbmc::wayland namespace, at least until
version_11::EventQueueStrategy can be dropped.
XBMCConnection::WaitForSynchronize() should also only be called from
the main thread and not the dispatch thread as it is responsible for
setting synchronized == true
[aml] add macro for optional export resolving
Add wayland-specific workaround for an intel driver bug
Optionally resolve wl_display_read_events and wl_display_prepare_read