CDK-371: Update delete docs and consistency.

This updates the documentation for DatasetRepository#delete to be
explicit that both data and metadata will be removed. It also clarifies
the ambiguity between returning false and throwing
DatasetNotFoundException. Returning false is correct (enforced by
testing) so the docs now reflect this and HBase has been updated to only
return false rather than throwing an exception.
CDK-370: Add compatibility checks to HBase.
CDK-292: Throw SchemaNotFoundException instead of NPE.

This fixes the case where the schema being written is not in the schema
manager because the Dataset has not yet been updated. The NPE was thrown
when calling mapFromEntity on a null entity mapper because the schema
version (used to get a mapper) was -1.

Now, when getting a specific version number from a schema,
SchemaNotFoundException is thrown instead of returning -1 to signal that
the version was not present. This is consistent with the existing
documentation for SchemaManager#getEntityVersion.

This update also adds SchemaManager#hasSchemaVersion to check if
getEntityVersion would throw SchemaNotFoundException. This is used in
place of getEntityVersion where -1 was used to check if a version was
known to the schema manager.
CDK-292: Fix avro schema comparison bug.

This adds a check that the number of sub-fields in a record matches.
Otherwise, when fields are added at the end of the record, equals may
return incorrectly depending on which schema is the left operand.