Re-structure the sort functions.

No longer doing in-place sorting.  Taking a vector, sorting it, and
returning the result.
This will also allow me later to compare different algorithms for the
same set of data ...
Add merge-sort implementation