Add a benchmarking suite for matrix.

Add an optimization suite to give us an idea of how fast cgmath is before spending time optimizing functions.

    ./build/x86_64-unknown-linux-gnu/bench/benchbench --bench

    running 42 tests
    test matrix::bench_mat2_add_m          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat2_add_self_m     ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat2_div_s          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat2_div_self_s     ... bench:         3 ns/iter (+/- 0)
    test matrix::bench_mat2_mul_m          ... bench:         4 ns/iter (+/- 0)
    test matrix::bench_mat2_mul_s          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat2_mul_self_m     ... bench:         4 ns/iter (+/- 0)
    test matrix::bench_mat2_neg_self       ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat2_rem_s          ... bench:        27 ns/iter (+/- 0)
    test matrix::bench_mat2_rem_self_s     ... bench:        27 ns/iter (+/- 0)
    test matrix::bench_mat2_sub_m          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat2_sub_self_m     ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat2_transpose      ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat2_transpose_self ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_add_m          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_add_self_m     ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_div_s          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_div_self_s     ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_mul_m          ... bench:         6 ns/iter (+/- 0)
    test matrix::bench_mat3_mul_s          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_mul_self_m     ... bench:         6 ns/iter (+/- 0)
    test matrix::bench_mat3_neg_self       ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_rem_s          ... bench:        66 ns/iter (+/- 0)
    test matrix::bench_mat3_rem_self_s     ... bench:        69 ns/iter (+/- 0)
    test matrix::bench_mat3_sub_m          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_sub_self_m     ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_transpose      ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat3_transpose_self ... bench:         3 ns/iter (+/- 0)
    test matrix::bench_mat4_add_m          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat4_add_self_m     ... bench:         2 ns/iter (+/- 1)
    test matrix::bench_mat4_div_s          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat4_div_self_s     ... bench:         9 ns/iter (+/- 0)
    test matrix::bench_mat4_mul_m          ... bench:        27 ns/iter (+/- 0)
    test matrix::bench_mat4_mul_s          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat4_mul_self_m     ... bench:        27 ns/iter (+/- 0)
    test matrix::bench_mat4_neg_self       ... bench:         3 ns/iter (+/- 1)
    test matrix::bench_mat4_rem_s          ... bench:       126 ns/iter (+/- 1)
    test matrix::bench_mat4_rem_self_s     ... bench:       125 ns/iter (+/- 0)
    test matrix::bench_mat4_sub_m          ... bench:         2 ns/iter (+/- 0)
    test matrix::bench_mat4_sub_self_m     ... bench:         3 ns/iter (+/- 0)
    test matrix::bench_mat4_transpose      ... bench:         5 ns/iter (+/- 0)
    test matrix::bench_mat4_transpose_self ... bench:         5 ns/iter (+/- 0)