turn CPESet2_3.compare_wfns into a generator

This way some comparisons can be short-circuited for faster matches...

I've extensively tested this with real-world data and get speed improvements by a factor of 6.

(Of course the worst-case complexity is identical to the list-based implementation, if every list only matches at the last item.)