Initial add of merge sort from Chapter 2