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.
Correctly detect same-generation loops

Join threads when they have not passed the current pc in the current generation.
Do this instead of removing one of the threads. The cyclic traces only occur when passing the same instruction multiple times within the same generation.
Merge pull request #4 from DrRataplan/master

Joining threads does not take generations into account