Implement a stable merge_sort(items, key=None) that returns a new sorted list in O(n log n), without calling sorted or list.sort. Stability means items with equal keys keep their original order.
merge_sort(items, key=None)
sorted
list.sort