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.
Avoid retrieving connection in ActiveRecord::QueryCache multiple times.
Add callbacks documentation for upgrading to 4.1.

It is now expected in 4.1 to use an explicit block rather than implicit
when setting callbacks through ActiveSupport::Callbacks. This commit
highlights this new expectation as part of the upgrading documentation.
Update Rails versions [ci skip]

As discussed in #15304, we need to automate this process but for now,
having out-of-date versions is not ideal.

Since master targets 4.2.0, let's also update references to the last 4.1
version to 4.2.0.

Finally, let's remove mentions to versions when this is not needed. The
guides cover the features of the current version anyway.

[Juanito Fatas + Robin Dupret]
[ci skip] Improve callback code example for 4.1 upgrade docs.

The previous code example for the new explicit block requirement when
setting callbacks was a little confusing. This commit makes the example
more obvious.
Merge pull request #16086 from nickpellant/master

Add callbacks documentation for upgrading to 4.1.
Merge pull request #16074 from sgrif/sg-remove-text-predicate

Remove the `text?` predicate from the type objects
Merge pull request #16078 from tgxworld/retreive_connection_once

Avoid retrieving connection in ActiveRecord::QueryCache multiple times.
always test against a routed rack app so there are always url_helpers
remove the mounted_helpers respond_to check

It always responds to mounted_helpers now
test i18n against a routed app