CDAP-398 Add exists() and waitForX() to cdap-client classes

https://issues.cask.co/browse/CDAP-398
Seems like a lot of waitXXX methods are having the same logic. Maybe make sense to turn it into something like:

```java
<T> void waitForPredicate(Predicate<T> predicate, T payload, long timeout, TimeUnit timeoutUnit) 
                                           throws TimeoutException, InterruptedException, ExecutionException;
```