Add reverse matrix multiply functions

The *_i functions multiply the value by the matrix instead of the other
way around, then store the result.
Fix gs_matrix_* issues

Multiplication of the matricies was being done in the wrong direction.
I didn't notice this until people started trying to use the gs_maitrx_*
functions within sources, and then I realized that the matrix values
were being multiplied in the wrong direction.