Can register conditions in which the running loop continues/stops

Test cases can register post conditions that will have to be all
satisfied at the end of the loop, and breaking conditions that are to
exit the running loop. If all of the post conditions are true or any of
the breaking conditions is true, the running loop stops.
To avoid infinite loop, timeout are registered as a breaking condition
before the loop starts running.
Accept not a proc but a block as an argument
Merge pull request #414 from itiut/can-register-loop-conditions

Can register conditions in which the loop continues/exits