First commit to change the Cairo render system using Cairo context instead of Cairo surface.
Apply to Layer, Context, Rectangle, Layer_Composite, render and targets Cairo type.
Do not optimize the render of the shape pre-clipping to the canvas  dimensions. Leave it to Cairo API
Rotate Layer: Add support for Cairo render using context
Rotate Layer: Do not rotate through a intermediate surface. Rotate directly the result.
Stretch Layer: Add support for Cairo render using context