Simplify interfaces

Eliminated duplicated returns of the type ("Clean up func sigs")
func foo(dst []float64, ...) []float64 { ... }
where the returned slice was also dst.  This makes the fact that those functions operate via side effect more explicit, and will prevent callers from redundantly assigning the result to a new slice.

I also cleared up a few edge cases in the code where zero length slices were provided to the functions.

The docs were cleaned up and variable names were made more uniform.

Testing has 100% coverage at this time.

What do you think of the changes?
I think LogSpan and Span should in fact return the slices. Dan and I had this discussion when floats was created. It allows this statement to be combined with range

for i, v := range Span(dist, 0, 15){
// do whatever
}

It's a pretty common case with span, so it seemed worth supporting.