CDK-367: Add methods to embed configs in schemas.

This adds embedPartitionStrategy and embedColumnMapping methods to the
correct parsers based on the merge methods in HBaseMetadataProvider.
CDK-367: Make parser methods static.

The stategy and mapping parsers have no state and don't need to be
instantiated.
CDK-367: Fix bug in ColumnMapping#getRequiredColumns.

This was producing "family:null" strings rather than "family:".
CDK-367: Ensure KAC prefix is always null, not empty.
CDK-367: Update id partitioner to support HBase changes.

This adds a new FieldPartitioner method, getType(S), that returns the
class the partitioner produces when given input of class S. This allows
the IdentityFieldPartitioner to use Object as its input and output
class because its class may not be known when the partition strategy is
built. This also adds convenience methods to get the source and
partition type given an avro schema. These methods are now used by Key
and FileSystemDataset.

This also removes the requried partition name for identity fields. If
not given, the partition name will default to sourceName + "_copy". This
is because HBase doesn't need partition names.
CDK-367: Fix toString methods that ignored parameter.
CDK-367: Fix Conversions for Object.

Conversions was testing the expected type using isAssignableFrom, so the
first branch was always being taken because everything can be assigned
to Object. The fix is to test for Object specifically and return the
input object because no conversion is requested. This was exposed by
Marker's getAs function that is using an id partitioner's getType rather
than getType(inType).
Exclude .json files from rat checks for test fixtures.
CDK-367: Update HBase to use new strategy and mapping formats.

Thanks, Adam!
CDK-367: Update maven plugin for new formats.
CDK-367: Add partition strategy inference for backward compat.

Before this patch, Kite HBase would create a partition strategy for a
dataset based on a numeric value on key mappings. This adds that
functionality back when there is no existing partition strategy and the
column mappings are embedded in the schema fields.
CDK-367: Add methods to remove schema-embedded config.

This adds removeEmbeddedMapping and removeEmbeddedStrategy that remove
the mapping and strategy embedded in schemas. This is needed to clean up
schemas when they are used elsewhere, like in the CSV import code where
the destination dataset schema is used as the CSV read schema. Setting
the schema on the temporary CSV dataset should not also set a partiton
strategy and column mapping.

Also, this consolidates JSON parsing and error handling in JsonUtil.
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.