recursive mergesort implementation