Improved the performance of mat4 multiply.

This will compile to be about 5 times faster then that current implementation. But it is also less readable then the current implementation.

I tried the same strategy on mat2/3 but it did not show any improvements so it was abandoned.

Before:
test matrix::bench_mat4_mul_m          ... bench:     32428 ns/iter (+/- 5572)

After:
test matrix::bench_mat4_mul_m          ... bench:      6484 ns/iter (+/- 2275)