fix(input): format as string before running minlength/maxlength formatters

Previously, minlength/maxlength would not work correctly when dealing with
non-string model values.

A better fix for this has already been implemented in 1.3, but unfortunately
implementing that fix in 1.2 is a bit harder as it requires a number of
commits to be backported in order to solve the problem correctly.

Closes #5936
It would be better to just add a general formatter that always runs first for text input types and converts the value to a string... But unfortunately this is hard because formatters are run in reverse order, and the most common behaviour is to push a validator to the end. Maybe that's what we want, though