Add ability to get entity names for a table.
Support Maps as composite wrappers.
Handle null unions for composite Daos.
Handle case where there are no field mappings (e.g. for a composite schema).
This large commit removes the concept of a key schema, and encodes the key schema
in the entity schema. Key fields can be added to the schema with a "key" mapping
type. Below is an example:

{
  "type": "record",
  "name": "UserActionsModel",
  "namespace": "com.cloudera.cdk.data.hbase.avro.example",
  "tables": ["cdk_example_user_profiles"],
  "fields": [
    {
      "name": "lastName",
      "type": "string",
      "mapping": { "type": "key", "value": "0" }
    },

    {
      "name": "firstName",
      "type": "string",
      "mapping": { "type": "key", "value": "1" }
    },

    {
      "name": "actions",
      "type": { "type": "map", "values": "string" },
      "mapping": { "type": "keyAsColumn", "value": "actions:" }
    }
  ]
}

Above is an example that has a 2 part key, where the first part is the lastName,
and the second part is the firstName field. The index of the key part is
specified by the value of the mapping type.
Use Avro schema name for entity name.
Implement delete.
Implement increment
Implement batch writer
Add accessor support for composites.
Convert example to dataset API.
Use a Specific Avro class for the composite wrapper.
Make EntityScanner implement Iterator too.
Make EntityScanner extend DatasetReader
Support dotted namespace for table.entityname until CDK-140 is done.
Create managed schema table if it doesn't already exist.
Add HBaseDatasetRepository Builder class
Implement HBaseDatasetRepository#delete
Remove redundant code following key-entity merge.
Get partition strategy from KeySchema.