Change Binding.List's sorted projection to use a merge sort which is more memory friendly

And doesn't allocate O(n log n) arrays