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
tests: run testcases in subprocess

When testcase call assert, then the test is aborted and test_teardown
is never called, therefore the mutter keeps running and blocks other
tests.
tests: add fail test

Test that should fail - FAIL_TEST and MUTTER_FAIL_TEST macros
tests: add sanity test

few environment tests
plugin tests