Don't ignore constraints in redirect routes

https://github.com/rails/rails/commit/402c2af55053c2f29319091ad21fd6fa6b90ee89
introduced a regression that caused any constraints added to redirect routes
to be ignored.

Fixes #16605
Be sure that test fixtures satisfy referential integrity before calculating

There exists some other test files that load :minivans fixtures but don't load :speedometers.
Loading :speedometers here prevents the following error when this test was run after such test:
CalculationsTest#test_should_group_by_association_with_non_numeric_foreign_key:
ActiveRecord::RecordNotFound: Couldn't find all Speedometers with 'speedometer_id': (ABC, s1) (found 1 results, but was looking for 2)
Move association definition to the model file
Move model definition to test/models for test order indenendency
User Model#last to certainly get lastly created data

This test would fail when executed after any test that calls fixtures(:binaries)
make it easy to copy & paste the config from deprecation warning.

[ci skip]
No transaction for a test that creates fixtures in the test body
Avoid using heredoc for user warnings

Using heredoc would enforce line wrapping to whatever column width we decided to
use in the code, making it difficult for the users to read on some consoles.

This does make the source code read slightly worse and a bit more error-prone,
but this seems like a fair price to pay since the primary purpose for these
messages are for the users to read and the code will not stick around for too
long.
Merge pull request #16637 from Agis-/redirect-with-constraint-route

Fix the router ignoring constraints when used together with a redirect route
Demodulize ActiveRecord::MigratorTest
Reset ActiveRecord::Migration.verbose to the value before
No tests are dealing with ActiveRecord::Migration.message_count here anymore
MigrationTest doesn't need to be verbose anymore
Silence another test that runs migrations
Bring original puts back after finishing tests
Reset ActiveRecord::Migration.message_count counter before start testing
Don't rescue IPAddr::InvalidAddressError

IPAddr::InvalidAddressError does not exist in Ruby 1.9.3
and fails for JRuby in 1.9 mode.

As IPAddr::InvalidAddressError is a subclass of ArgumentError
(via IPAddr::Error) just rescuing ArgumentError is fine.