Added extra "last pass" processing to merge function.

Going back to iterative merge sort since inversion is not yet working, discovering
a few bugs.

If skip_count does not divide the list evenly, the last len(l) % skip_count
items are not being merged. This is already covered in an existing test case but
it succeeds since the largest item in the set is the one at the last position.
skip_by increments by doubles every turn.

As should be. This is what makes merge sort O(n log n).