source and test code for merge sort.