simd4f: Add sum_scalar() operator

Same as sum(), but returns a scalar value and does not require the
caller to call get_x().
simd4x4f: Improve the matrix multiplication

The current implementation using matrix-vector multiplication gets
the non-commutativity wrong, plus it's not entirely clear.

I decided to rewrite it from scratch starting from a naive
implementation that does the classic row times column multiplication;
unsurprisingly, this approach is also fairly slow compared to the
current implementation, especially when it comes to the scalar SIMD
implementation fallback code. On the plus side, the naive implementation
is actually correct.

From the correct implementation, I reduced the coded by skipping the
transpose operation, instead opting for four dot products per row; this
approach maintains correctness, while speeding up all cases by a factor
of two, and bringing us back to the same levels of the current
implementation.
matrix: Use the right order for the multiplication operands

Multiply the existing matrix with the transformation matrix, now that
the low level matrix multiplication does the right thing.