Fix for Issue #17547

ActiveModel built-in validators should use the custom message passed in as :message option
Could an alternative implementation be 

```ruby
def normalize_message(attribute, default_message, options)
  message = options[:message] || default_message
  # rest of the method
```

This way it'll existing logic will already handle the cases for `Symbol`, `Proc`, etc.