save start scheme in greedy algorithm
fix bug in subset cacheing

the issue was that column_sets for identical subsets were not always
recognised as identical, because the ordering of the columns wasn't
always identical.

Fixed by sorting the columns before creating the frozen set, there's
probably a neater way, but it doens't really matter.