An unordered collection of Tuples with no multiples. Data is
stored without duplicates as it comes in. When it is time to spill,
that data is sorted and written to disk. It must also be sorted upon
the first read, otherwise if a spill happened after that the iterators
would have no way to find their place in the new file. The data is
stored in a HashSet. When it is time to sort it is placed in an
ArrayList and then sorted. Dispite all these machinations, this was
found to be faster than storing it in a TreeSet.