ACCUMULO-3242 Add proper retry logic to ZooReader, ZooReaderWriter and ZooUtil removing the RetryingInstance.

The RetryingInvocationHandler was a nice way to encapsulate retry logic
on a ZooKeeper; however it fails when you actually need to do additional
handling of the KeeperException. Removing the retrying/non-retrying logic
also simplifies methods that the clients can interact with.

ZooUtil still has some unaddressed issues, but I left some TODOs
in place to mark what still needs to be fixed, usually WRT to
session expirations.
ACCUMULO-3242 Add some tests for ZooReaderWriter
ACCUMULO-3242 Rip out the rest of the improper ZK usages in ZooUtil.

The way ZooUtil was written made it really hard to correctly handle
session expirations. Remove ZooKeeper as an argument and use ZooSession
(like ZooReader and ZooReaderWriter) which should correctly account
for a new connection.
ACCUMULO-3242 Add some tests for Retry
ACCUMULO-3242 Fix up the retry logic in ZooCache.