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
Refactor out Dir.glob from ActionDispatch::Static

Dir.glob can be a security concern. The original use was to provide logic of fallback files. Example a request to `/` should render the file from `/public/index.html`. We can replace the dir glob with the specific logic it represents. The glob {,index,index.html} will look for the current path, then in the directory of the path with index file and then in the directory of the path with index.html. This PR replaces the glob logic by manually checking each potential match. Best case scenario this results in one less file API request, worst case, this has one more file API request.

Related to #16464

Update: added a test for when a file of a given name (`public/bar.html` and a directory `public/bar` both exist in the same root directory. Changed logic to accommodate this scenario.
Merge pull request #16544 from schneems/schneems/death-to-dir-glob

Refactor out Dir.glob from ActionDispatch::Static
Add language directive to .travis.yml

Currently, Travis CI assumes that the project is in Ruby in the
absence of the `language` key.
This behavior may change in the future. (For example, switch to a "blank"
image which *may* be created.)
remove dead code

the ERB has already been compiled to Ruby code by the time we're calling
module_eval.  Nothing that module eval raises will be caught by a blank
`rescue`, so I think we can remove this
remove useless parameter
Merge pull request #16727 from BanzaiMan/travis-yml-fix

Add language directive to .travis.yml
Reset schema properly after schema changing test
Ignore SCHEMA queries when asserting no queries
AP test files does no more need to be alphabetically sorted here
Test everything

This actually was testing test everything, so why not do it simpler?
No need to sort tests

Dir.glob result must be already sorted anyway
Rails.root should be a Pathname
Reset RACK_ENV after modified in a test case
Expectations first
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]