#2 Let #pause(..,timeout) methods time out if condition takes too long.

Previously a malicious condition could cause the test suite to hang
endless. This was possible because the timeout of the pause method was
evaluated in the same thread the malicious condition ran. Therefore the
check of the timeout never happened when the condition did block.

Now the timeout is handled as in many other libraries (as JUnit) and as
suggested on
http://stackoverflow.com/questions/1164301/how-do-i-call-some-blocking-method-with-a-timeout-in-java:
the timeout is handled by a Future-object whereas the condition is
executed on a separate thread.

The change breaks the backward compatibility as the #pause(..) methods
previously executed the conditions on the current thread. This could IMO
only cause problems when the #pause(..) method is called from the EDT.
But since this is no good design we can accept that consequences.