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

Removed the inaccurate comment, renamed partitions to partition, from https://github.com/spotify/luigi/pull/37