Implement Table-drive finite automata generator

One test fails, fix will be included in the next commit.
Create a start state for each rule in NFA generation

Also fix tests. The start state allows to keep traversing in the same
rule without confusing it with another one.