Skip Rack applications and redirects when generating urls

When generating an unnamed url (i.e. using `url_for` with an options
hash) we should skip anything other than standard Rails routes otherwise
it will match the first mounted application or redirect and generate a
url with query parameters rather than raising an error if the options
hash doesn't match any defined routes.

Fixes #8018
removes the obsolete private method column_methods_hash [Closes #11406]
make sure scope_chain_items has consistent types
use Relation#merge to combine scope chain items
just push on to the scope chain items. Oops! (thanks @carlosantoniodasilva)
cache the scope chain on the stack and eliminate `i`
cache the klass member of the reflection
decouple the manager class from building join constraints
parent_table is only used internally
Revert "Merge pull request #11120 from awilliams/ar_mysql2_boolean_quoting"

This reverts commit cb1d07e43926bcec95cb8b4a663ca9889173395a, reversing
changes made to 754a373e301d2df0b12a11083405252722bc8366.
Added routing in test for actionpack
Fix failing test missed for the past year :(

When optimized path helpers were re-introduced in d7014bc the test added
in a328f2f broke but no-one noticed because it wasn't being run by the
test suite.

Fix the test by checking for nil values or empty strings after the args
have been parameterized.
Refactor to reduce number of loops

Only build the missing_keys array once we have detected that there
actually are missing keys by moving the check to be part of the block
that performs the path substitution.