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.