Bump version to 3.11.5

Update NEWS.
shaped-texture: Remove get_clip

It seems that this code is trying to transform from "surface coordinates"
(the size of texture that's being displayed) to "actor coordinates"
(the actor's allocation), but I can't find any place where the two are
different. As such, let's just go back to using "surface coordinates"
everywhere and see what breaks.
shaped-texture: Constify clip

This matches upstream
shaped-texture: Clean up code flow a bit

This is easier for me to read.
window-actor: Clean up whitespace
cullable: Reset the culling state instead of skipping the traversal

When we traversed down to reset the culling state, previously we
would just skip any actors that wanted culling. In order to properly
reset the unobscured_region before painting, we need to traverse down
to these places as well. Do this by calling cull_out with NULL regions
for both arguments, and adapt existing cull_out implementations to
match.

https://bugzilla.gnome.org/show_bug.cgi?id=720631
shaped-texture: Move unobscured_region processing here

We want to remove a bunch of auxilliary duties from the MetaWindowActor
and MetaSurfaceActor, including some details of how culling is done.
Move the unobscured region culling code to the MetaShapedTexture, which
helps the actor become "more independent".

https://bugzilla.gnome.org/show_bug.cgi?id=720631
shaped-texture: Fix unused variable warning

(cherry picked from commit 101a13c86daaea0a6cd0b7421f7a186fbf4ca3f9)
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 code for running tests

Add code that will take tests binaries and spawns them in
subprocess. When all tests are done, report results.

Plugin looks for MUTTER_WAYLAND_TESTS environment variable.
If it's empty, the mutter will be kept alive in the case of
manual testing.
If the variable is not empty, then it parse it as
"/a/b/c/test1 /a/g/b/test2 ..." (space separated absolute paths
to the test binaries) and after mutter is initialized, spawns the
tests.
test plugin: add wl_test implementation

Implement request for wl_test object
mutter-test: move Test class into package

I decided to split mutter-test script into more files
1) it's better 2) author intended do it later according the comments :)

I created a package muttertest where will be placed classes and helper
functions that do not need be neccessarily (or logically) in
mutter-test.

This patches is the first in series that do abovementioned stuff and
moves base class Test into the package.
mutter-test: move and rename run() function

This function has the same name as Test.run() method and this can be
confusing. Rename it to sys_run and move it into helpers.py source
mutter-test: move exceptions to standalone file

continue packaging
mutter-test: introduce TestRunner class

In order to implement other types of tests in mutter-test (unit,
regression) create a generic class that will contain set of tests and
method for running them (no matter what tests - polymorphism will be
used for decision if it's unit or build test or whatever)
mutter-test: create BuildTestRunner

Create TestRunner for build tests. Consequently, it was neccessary
to change BuildTest and main
Also use testlist.py with tests specification instead of creating
subclass for each test
mutter-test: generate config.py

Use autotools for generating config.py. In this file will be included
autotools variables so the mutter-test can set up appropriate paths
mutter-test: set build path according config.py

Set paths in build tests