Simplify sigs

As discussed at https://groups.google.com/forum/#!topic/gonum-dev/nOWoTO2ilVM

This is more of a request for comment than something I want to merge right away.  In particular, I've changed some of the algorithms to use a correction.
He's using the same approach as I am here, with the exception that I've included a correction based on the Chan paper (which I don't have any documentation for when calculating correlation!)  The main thing is calculating the mean in one pass and then calculating the correlation in the next one.

The calculation is identical to the Variance function, which is called by the MeanStdDev function.  Compare:
```go
		for i, xv := range x {
			yv := y[i]
			xd := xv - xu
			yd := yv - yu
			sxx += xd * xd
			syy += yd * yd
			sxy += xd * yd
			xcompensation += xd
			ycompensation += yd
		}
		sxx -= xcompensation * xcompensation / float64(len(x))
		syy -= ycompensation * ycompensation / float64(len(x))
		return (sxy - xcompensation*ycompensation/float64(len(x))) / math.Sqrt(sxx*syy)
```

and

```go
		for _, v := range x {
			d := v - u
			ss += d * d
			compensation += d
		}
		s2 = (ss - compensation*compensation/float64(len(x))) / float64(len(x)-1)
		return
```
With the exception that it isn't adjusted for sample size.  So do you mean that sxy should be getting divided by the x standard deviation * y standard deviation in each iteration?

It might be better to get rid of this xcompensation and ycompensation thing for now.