added a mergesort, using the rosetta project implementation, deduping using sorted()