[libkwineffects] Add support for shaders in AnimationEffect
The animate and set calls are extended for an optional GLShader* to allow specifying a custom shader to use during the animation. To properly support rendering a complete window in the effect the AnimationEffect gets based on the DeformEffect. If a shader is used during the animation the window gets redirected. For the animation with shaders two new enum values are added to the AnimationType enum: * Shader * ShaderUniform The Shader animation type is for specifying that the animation uses a shader. During the animation a uniform "animationProgress" is set on the shader. The ShaderUniform animation type behaves exactly like the Shader type, but also animates a user provided uniform. The meta data of the animation is interpreted as a uniform location for a float uniform and during the animation this uniform is updated with the interpolated animation data.