shaped-texture: Use Cogl-Matrix for viewport src-rect
From the commit message:
This brings the viewport src-rect code in line with how we handle transforms. Further more, it fixes not-y-inverted textures in combination with transforms and prevents `invalidate_size()` to get called on every commit (on Wayland).
This is required for !409 to work with viewport src-rects.
Looking at the result, I should have written it like this in the first place :)