Fix edge case in CumSum and CumProd

The CumSum and CumProd panicked when given an empty receiver.  Because
the docs don’t indicate that it should panic, I just have it return an
empty slice.
Improve test coverage

Tests now cover 100%.  However, the []float outputs are not checked in
funcs which operate by side effect.