Improved waits

This PR addresses explicit waits in candybean.

 `WebDriverPause` is updated with a generic wait method `waitUntil()` that polls until a condition (that is passed as a parameter) is satisfied. The condition can be any `ExpectedCondition`. A comprehensive list that is relevant to candybean is in `WaitCondition`. Some conditions are already built in by Selenium and some are custom conditions only for candybean.