Always construct route objects with Constraint objects
push is_a?(Dispatcher) check in to one place
eliminate dispatcher is_a checks
Constraints#app should never return another Constraints object, so switch to if statement
one fewer is_a check
nothing is passed to `rack_app` anymore, so rm the params
pass a request to `matches?` so we can avoid creating excess requests
pass the request object to the application
push is_a check up to where the Constraints object is allocated
a redirect is not a dispatcher by definition, so eliminate test
we do not need to cache rack_app
stop hardcoding path_parameters and get it from the request
skip the build business if the stack is empty
rake railties:install:migrations respects the order of railties

This PR fixes #8930 and some stuff from #8985
give all endpoints a superclass
Test Case - Change method name
Merge pull request #15372 from akshay-vishnoi/test-cases

Test Case - Change method name
constraints class does not need the request class anymore
call `serve` with the request on dispatchers
dispatcher doesn't need `call` anymore