Add interpolation for matrices

Interpolating between two transformations expressed using a 3D matrix
can be achieved by decomposing the matrices into their transformations
and do a simple numeric interpolation between the initial and final
states, like we do for other data types.

Luckily for us, the CSS Transforms specification from the W3C provides
the decomposition algorithm, using the "unmatrix" code taken from the
book "Graphics Gems II, edited by Jim Arvo".

Once the matrices have been decomposed, we can simply interpolate the
transformations, and re-apply them onto the result matrix, using the
facilities that Clutter provides for interpolating between two known
GTypes.
actor: Make :transform and :child-transform animatable

Now that we can interpolate between two matrices, we can mark the
matrix-based property as animatable.
examples/pan-action: Animate the content reset

We can use the newly added support for implicit animations for the child
transform.
blur-effect: Fix the blur filter

Make sure we don't sample the center twice, and don't sample things
that aren't our immediate neighbors.

https://bugzilla.gnome.org/show_bug.cgi?id=683076
stage: Remove tracking input devices, it's not used

https://bugzilla.gnome.org/show_bug.cgi?id=683126
input-device: don't reset a device's stage until all touch points are gone

803b3bafb617c2df703aa8b834ff0df2f0c5c26c introduced a new issue for
multi touch events.

In the case where 2 touch events for 2 different touch points are
processed in the same iteration, a call to
_clutter_stage_remove_device() when processing the first event will
remove the stage setting of the InputDevice. That means Clutter will
skip the second event, because it can't find a stage to which relate
the event, so no related actor and so no emission.

To fix this we move the _clutter_stage_(add/remove)_device() calls
into the input device. This way the input device can find out exactly
when to call these functions (i.e. when no touch point were previously
active or when no touch point remain active).

https://bugzilla.gnome.org/show_bug.cgi?id=682362
docs: Fix GestureAction.get_velocity()

The velocity is in pixels per milliseconds, not microseconds.

https://bugzilla.gnome.org/show_bug.cgi?id=683113
evdev: Swap the numbers for the middle and right buttons

The ordering of the evdev button numbers is the opposite of the
order in Clutter (the middle button is 3 instead of 2) so we need to
manually map the button numbers when creating a ClutterButtonEvent.

https://bugzilla.gnome.org/show_bug.cgi?id=680255
docs: Update with missing symbols
gdk: Fix include
Release Clutter 1.11.14 (snapshot)
Post-release version bump to 1.11.15
Updated British English translation
Updated Indonesian translation
x11: Add EventSequence → touch detail accessor

The ClutterEventSequence structure is a fully opaque type; on X11, it is
just an unsigned integer that gets converted into a pointer, but in the
future it may become a fully fledged data structure.

Obviously, we cannot tell people to just dereference the pointer into an
integer in order to use it, and still retain the ability to change the
type; for this reason, we need a proper accessor function to convert the
EventSequence into a touch detail, to be used with the XInput API.
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Update French translation
stage: Normalize key focus setting

We often mean that when key_focus == NULL, it's assumed to be on the
stage, and clutter_stage_get_key_focus() reflects this. We also do a
lot of check around the lines of key_focus == NULL instead of also
checking for the stage, so make sure to normalize it so that explicitly
grabbing the stage's key focus will not change our behaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=683301
Updated Serbian translation
color: Simplify shade() implementation

We can use the CLAMP macro, instead of a bunch of ifs.