gc_math: Fix build of unittests

Typename 'mat4' is now 'mat4_t'. And mat4_t initializers require
designated field names.
gc_math: Replace open-coded initializers with constructors

That is, use mat4_id() and mat4() when possible.
gc_math_unittest: Add funcs drand(), frand()
gc_math_unittest: Really test mat4_mul, mat4_add

The tests never checked the resultant matrix. It just printed it out to
stdout.
gc_math: Add tess mat4_mul_left_id, mat4_mul_right_id
gc_math: Unroll loop in test mat4_init_to_identity

Write the test so that failure messages point to the exact problem.
The for-loop prevents that.