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
give all endpoints a superclass
constraints class does not need the request class anymore
call `serve` with the request on dispatchers
dispatcher doesn't need `call` anymore
move path_parameter encoding check to the request object
rm reset_parameters because we automatically do it from 9ca4839a
Merge branch 'constraints'

* constraints:
  rm reset_parameters because we automatically do it from 9ca4839a
  move path_parameter encoding check to the request object
  dispatcher doesn't need `call` anymore
  call `serve` with the request on dispatchers
  constraints class does not need the request class anymore
  give all endpoints a superclass
  skip the build business if the stack is empty
  stop hardcoding path_parameters and get it from the request
  we do not need to cache rack_app
  a redirect is not a dispatcher by definition, so eliminate test
  push is_a check up to where the Constraints object is allocated
  pass the request object to the application
  pass a request to `matches?` so we can avoid creating excess requests
  nothing is passed to `rack_app` anymore, so rm the params
  one fewer is_a check
  Constraints#app should never return another Constraints object, so switch to if statement
  eliminate dispatcher is_a checks
  push is_a?(Dispatcher) check in to one place
  Always construct route objects with Constraint objects

Conflicts:
	actionpack/lib/action_controller/metal.rb