Update data annotations validation to support the DisplayName attribute

This fixes https://github.com/NancyFx/Nancy/issues/1469

It also contains a change to allow modifying the `ModelValidationError` returned from the `Validate` method without the need to override it.

This is useful for class level validators which won't return member names, or even built-in attributes such as the `CompareAttribute` which also doesn't return member names.