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.
Yes, you're right that the nil vs all weights == 1 should ideally produce the same result.  I wasn't sure how to implement it that wouldn't require a couple square roots in the loop, which I thought would result in a significant performance hit, but there are no benchmarks so I can't tell.  They're on the list of things to do, but I haven't gotten to them.

Incidentally, pertinent to the platform independence talk on golang-dev, https://golang.org/src/pkg/math/sqrt.go is intended to be platform independent I think.