matrix: Fix interpolation

When calling graphene_simd4f_t functions we always operate on values,
not on references, so we need to store the result.

Instead of using `mul(v, splat(-1))` we should use the neg() operator.
Add graphene_lerp() private macro

A macro for computing the linear interpolation between two values.
rect: Use graphene_lerp() for interpolation

And drop the custom internal macro we use.
matrix: Simplify interpolate()

Use graphene_lerp() where necessary, and drop intermediate variables
where not needed.