Completed initial implementation of parallel sort.  It uses an in-place ...

...merge sort implemented with parallel block exchange.  The time limit isn't set up yet, but all the parallel algorithms are cancellable.
@bsoetaer 
For your first point, we index against `self` which will in turn use `mutation_by_index`.  So the right elements will be modified.

For your second point, you're right - there is no error checking in this case.  In the ideal case, we would have a contract to specify the valid inputs, but since this code isn't part of the public interface, I just left it as it is.