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 run tests
(common binaries that will be execed in a fork - the result of test
will be its return value)
test plugin: add wl_test global

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

Implement request 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.