Remove the `text?` predicate from the type objects

This was only used for uniqueness validations. The first usage was in
conjunction with `limit`. Types which cast to string, but are not
considered text cannot have a limit. The second case was only with an
explicit `:case_sensitive => true` option given by the user.
Merge pull request #16074 from sgrif/sg-remove-text-predicate

Remove the `text?` predicate from the type objects