Fix Issue25

Test was refactored not to depend on "timing" and not to be too influenced by the threads particularities.
Now the test has a fake "reset_line" method that keep tracks of what is being "reseted" and when.
So we can test if the cycle_through method is yielding the right characters and at the (almost) correct time.
The test admists delay to be between 1 - 1.5 x the programed delay. So this makes the test more 'resistent' to the case when thread for some issue is being delayed more than the programed. But still fails if the delay is too different (>1.5x) of the programed.