CDK-456: Add partition constraints

This updates the Constraints class to use a PartitionStrategy so that it can handle constraints against partition fields. SchemaUtil is also extended with some functionality from the HBase implementation, which will also be used by the CLI in #115, CDK-488.

Also, this should have better performance because it uses the partition strategy to prepare the constraints in the key and entity predicates so there aren't any lookups when they are applied.
This should get replaced by the result of [CDK-518](https://issues.cloudera.org/browse/CDK-518), replace the use fo `PropertyDescriptor`. I don't think we've filed the follow-on issue to be able to register other data models.