CovarianceMatrix function

As discussed previously in #15, this implements a two-pass covariance calculation for mat64.Matrix.  I'm wondering if we should require BLAS to calculate covariance or if I should write an implementation with and without it.  Also, with better knowledge of the mat64 package I believe some of the memory allocations can be eliminated.

Currently a WIP, this pull request isn't anywhere near ready for merge.  Also, the .travis.yml file will have to be updated to get the BLAS dependency.  PTAL @kortschak, @btracey, I could use your advice.
Couple extra tests to add if you don't mind:
1) Could you make a copy of test.data and test.weights and verify they don't change? The code might change in the future to do tricky things, and it would be nice to have a test to prevent against that.
2) Could you add an additional test that compares the result from a call to Covariance? 
```
// after the call to coviance matrix
_, c := c.Dims()
for i := 0; i < c; i++ {
    for j := 0: j < c; j++{
    x := test.data.Col(i)
    y := test.data.Col(j)
    cov := Coviariance(x,y, test.weights)
    if !math.Abs(cov - c.At(i,j)) > 1e-14{
        t.Errorf("CovMat does not match at (%v, %v). Want %v, got %v.", i,j,cov,c.At(i,j)
}
   }
}
````