pointer/keyboard: fix setting focus

Set focus to NULL after using the variable
tests: employ wl_test object protocol from Weston

Use Weston's wayland-test.xml specification.
tests: introduce mutter-test plugin

This plugin will create wl_test global in mutter and will provide
basic testing capabilities
test plugin: add wl_test global

Create wl_test global in init function and set up binding
test plugin: add wl_test implementation

Implement requests for wl_test object
test plugin: get pipe from parent

When mutter-wayland is spawned by test, then the test needs wait
until mutter is fully initialized.
In order of achieving that use pipe (or socket) that is passed from
the test (parent process) to mutter (child process) in environment.

This patch covers mutter side - get socket and notify parent when mutter
is ready.
tests: add code for creating and running tests

use mixture of wayland's test suite and glib (save list of tests in special
section and run them using glib)
There are two types of tests (due to efficency):
TEST(test_name) is usual test that do not need mutter and
MUTTER_TEST(test_name) is test that will be run along with mutter
tests: run mutter only once when needed

Use MUTTER_WAYLAND_RUN_ONCE environment variable for making the tests
not spawn mutter each time, but only once for the test binary.
tests: add weston tests helper

Add pre-defined functions for tests from weston
tests: make weston-test-helper work with mutter

add xdg_shell and surface handling
protocol: add event_processed event

Since it's hard to synchronize client and compositor after asking for
simulating event (clutter has it's own clock), use this event
to signal that an event has been processed.
It's argument is ClutterEventType.
test-plugin: send event_processed on "event" signal

Use signal "event" for sending event_processed event. Also send
pointer position when the event is of CLUTTER_MOTION type
test helpers: catch event_processed event

Catch this event and set flags accordingly. The flags are not reseted
by default so user (when he wants check the state) must take care of
reseting the flag before using it
test helpers: add move_pointer function

move pointer and wait until mutter process the event
tests: create xdg-shell-client-protocol.h for tests

Client headers have been removed recently, but we need this one in tests
tests: add sanity tests

few environment tests
plugin-test