#25 remove check of mrj.version for identifying Macintosh OS.

With Java 7 the system property mrj.version (which was used to identify
Mac OS in previous Java releases) doesn't return a non-null value on
Macs anymore.

Regarding to the note on
https://developer.apple.com/library/mac/technotes/tn2002/tn2110.html#MRJV
about the mrj.version, Macintoshs and Mac OS X are now identified by
checking if the system property os.name contains 'os x'.

This helps identifying Mac OS under Java 7 and following releases. But
it also removes support for identifying Mac OS 9. This shouldn't be
needed by anybody. But this commit should be changed if Mac OS 9 support
is needed!
#4 fix deadlock of test case when expected exception is thrown.
#2 Don't pause the EDT when checking if JInternalFrame is iconified.
#2 Don't pause the EDT when checking if dialog is showing.
#2 Don't pause the EDT when checking if frame is active.
#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.
#2 Early exit #pause(Condition[], long) when one condition is null.

A NullPointerException should be thrown when one Condition of the passed
array is null. Previously if all conditions before a null condition
always returned false, the NullPointerException only occurred after the
timeout of the method.

Now before waiting for the conditions to pass a quick null-check is done
so that it can throw the NullPointerException quickly.