Grouped validation rules per property

No modifications to the actual `ModelValidationRule` type yet, just the way they are handled by the `ModelValidationDescriptor`. The rules are now grouped per-property name instead of just being a list. The type of the model has also been added