Added mergesort, and two varaints of merge