gc_math: Unanonymize typedef mat4

Give the struct a tag. Name the tag same as the typedef.
gc_math: Reduce indentation in for loops
gc_math: Replace mat4_translate -> mat4_translation

Function mat4_translate was incorrect. Translation in projective 3-space
requires multiplication, but the function contained no multiplication
operations.

Replace it with function mat4_translation, which simply returns
a translation matrix.
gc_math: Rename type mat4 -> mat4_t

Follow the coding conventions for project.
gc_math: Define inline consructor mat4()
gc_math: Add vec4_t with inline constructor
gc_math: Add func mat4_apply_vec4
gc_math: Simplify usage of vec4 coords

Allow code to say `v.x` or `v.r` instead of `v.f[0]`.
gc_math: Add readable accessors for mat4

Let all be equivalend:
    m.f[2][3]
    m.m23
    m.r[2].w
    m.r2.w
gc_math: Use named initializers in func mat4()
gc_math: Add constructors vec4_unit_x/y/z()
gc_math: Define vec4_add()
gc_math: Define vec4_dot()
gc_math: Replace var mat4_id with constructor mat4_id()
gc_math: Unroll loops in mat4_add()
gc_math: Define accessors mat4_row() and mat4_col()
gc_math: Unroll loops in mat4_mul()
gc_math: Change signature of mat4_translation

Replace floats with a single vec4.
gc_math: Simplify math in mat4_apply_to_vec4()

Replace open-coded arithmetic with calls to vec4_dot().
gc_math: Change signature of mat4_axis_angle()

Replace floats with a vec4_t.