CDK-415: Add reconnect and retry support for Hive.

This adds a doWithRetry() method to the internal HCatalog class that
will run an action and catch TExceptions. If a TException is thrown, it
will reconnect to Hive and then retry the action. Because all actions go
through this method, the synchronization on the Hive client is there as
well.

Most of the HCatalog methods caught Exception and RuntimeException. This
commit updates the error handling to catch the correct Hive exceptions
and handle them more correctly in some cases. The fallback is the same
behavior as before when a TException is unknown.