Add Failing test for per-generation thread join

To do this, and extra example is added: get all possible extensions of
the input adding a single character which are still in the given language.
Join threads when they have not passed the current pc in the current generation

Do this instead of removing on of the threads. the cyclic traces only occur when passing the same instruction multiple times within the same generation.