Signle threaded merge sort with unit tests