Refactor hive functions into client, add thrift client

HiveClient interface for:
  - table_location
  - table_schema
  - table_exists
Implementation using `hive` invocations, and the thrift metastore
client.

Note: this changes the table_location function to take a dict instead of
a partition string
Merge pull request #48 from JoeEnnever/hive

Refactor hive functions into client, add thrift client
failure setting for missing tables on partition target

- resolved merge issues