Initial wayland test framework

Secondary Author: Cory Fields

wayland: Fixup test building

- Build tests in the test dir, not the main make.
- Guard objects and code appropriately
- Remove support for all but weston += 1.0.99. pkg-config and versioning were
  not implemented before that anyway.
Lazy-bind global interfaces.

Make all global-interfaces lazy-binding. This means that we store
the result of any incoming wl_registry.global event and then actually
process it later when we call wl_registry.bind after trying to
access the global object for the first time.
Add wayland object listeners.

We will need direct access to some wayland objects in testing,
some of which are only available to the client itself. Add some
hooks to the client classes to advertise via a singleton via
any other interested code that some wayland object became available.

Test that we received the xbmc_wayland object after connection and
sync.
Add tests that depend on xbmc_wayland
Split WinEventsWayland.cpp into separate files and refactor.

Rename WaylandInput to InputFactory and WaylandEventLoop to Loop.
Put each of them in the appropriate namespace. WaylandEventLoop
now delegates event queue callbacks to an injected EventListener
so as to decouple it from the rest of XBMC.
Added input acceptance tests
Add unit tests for PointerProcessor
Give xbmc::wayland::Keyboard the responsibility of managing the keymap.

The fact that we recieve the keymap as a string in shared memory is
really a wayland-specific implementation detail and not an abstraction
suitable for KeyboardProcessor. All KeyboardProcessor needs to care
about is receiving a keymap of some sort.
Do a reverse lookup on the keymap instead of hardcoding keys
Add key repeat tests
Split up TestEGLNativeTypeWayland.cpp into separate translation units.

Where we don't generate the xbmc_wayland test extension, those tests
depending on it are disabled