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.