CDK-342: Add JSON parser and generator for partitioning.

This adds PartitionStrategyParser, which parses a JSON-formatted
representation of a PartitionStrategy. Right now, the partitioners are
hard-coded in the parser. This also updates the PartitionStrategy's
toString method to produce a valid JSON representation. toString behaves
as in Avro's Schema.

Invalid partition strategies result in a ValidationException.
ValidationException replaces SchemaValidationException, which is now
deprecated.

To simplify the strategy construction, this updates the field
partitioners that have default partition names to accept null names and
use the default. This also adds @Nullable to the equals method to avoid
warnings.