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 (merged) to work with viewport src-rects.
Looking at the result, I should have written it like this in the first place :)