Add from functions for matrices

Replaced the previous commit since it was poorly done and didn't follow
established convention. Also added comments.

Various *mat.from* for translations, rotations, and scaling. The *a*
argument has been removed and instead they operate on an implicit
identity matrix, drastically reducing the number of *mat.identity* calls
and trivial 1 and 0 multiplications required in some scenarios.