clean up some of the docs

Fixed a few docs, and moved sort type to be next to the code that uses
it.
Clean up func sigs

I’ve removed the unused returns from functions with the pattern:

func foo(dst []float, … ) []float

where the returned slice was the same as the source slice, under the
rationale that if people are using this code for tight loops without
reallocation, then if the caller reallocates the return then they will
add inadvertent inefficiency.  Also, they might get the idea that the
input is not modified.  A function with no returned values is obviously
one with only side effects.

I also standardized the names of the input arguments - specifically,
the ones that are modified in place are called “dst”

Where functions had repeated types of inputs, I used the typical go
syntax of func(x, y [type]) instead of func(x [type], y [type])

I also fixed capitalization for the package comment.
Avoid undocumented panic in CumSum and CumProd

If either CumSum or CumProd had zero length inputs, they would have
panicked.  That behavior is not documented so I’ll assume this is a
mistake.
Avoid swapping mem in ulpDiff

Small change to avoid memory swapping.
Document panic in Nearest
Avoid duplicated distance comparison in Nearest

Nearest was calculating the distance of the first element twice.
Starting the loop on the second element avoids that.
Make doc for Scale a little more explicit
Add tests to reach 100% coverage

There were a few missing edge cases, and a missing test for Fill.

I tried to follow the style used in the existing tests, but it wasn’t
consistent.