adding waitFor method which fails (as in JUnit.fail) after a timeout, describing the failure
moved Condition classes out into their own package and top level classes