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: create xdg-shell-client-protocol.h for tests

Client headers have been removed recently, but we need this one in tests
tests: make weston-test-helper work with mutter

add xdg_shell and surface handling
test helpers: add move_pointer function

move pointer and wait until mutter sends back pointer position