Implement parallel matrix multiply.

Matrix multiply is a core algorithm for many advanced matrix operations. Concurrency is
a core feature of Go. This PR implements a parallel matrix multiply which concurrently
multiplies sub-blocks of matrices. If the matrices are sufficiently small, or
GOMAXPROCS == 1, the matrices are multiplied in serial to avoid the extra overhead.

This also fixes a bug in the old Dgemm implementation where the whole C matrix
data is scaled even if the data is not accessible.

This PR also adds a number of tests verifying the implementation is correct.
Added license headers to new files
shortened dgemm count names
Changed totalBlocks to expect inside computeNumBlocks
Added matrix multiplication benchmarks. In the process, found and fixed a bug. Add a test for that bug.
Turn debug back off
Added dgemmbench_test for cblas
Redo inner matrix multiply with slicing.

Replace the direct [i*stride + j] indexing with reslicing in the inner matrix loops. Benchmarks show this is 5-10 times faster. Along with the parallelization, the large matrix mulitply is about 17x faster than before
Reduced channel buffers and changed implementation
Merge pull request #18 from gonum/pardgemm

Implement parallel matrix multiply.