CDK 47 typed field partitioners

Adds type parameters to FieldPartitioner, as well as a way to get the target type for a field.

IdentityFieldPartitioner now requires that a target type is specified (defaults to String for back compatibility). It might be possible to get this from the schema as a future improvement, but that would involve more changes since the FP may be constructed before the schema.