Fix redirect() router declarations to properly handle urls of the form 'localhost:3000' 

Absent this fix, 'localhost' is interpreted as the scheme and '3000' is interpreted as the 'opaque', in the sense of it being a directive to an unknown 'localhost' scheme. Because Redirection is concerned with url redirection specifically, we can assume in these cases that the target is a url of a regular http / https scheme.

Without the fix, the tests fail with:

          1) Error:
        TestRoutingRedirect#test_redirect_https_with_url_and_port:
        NoMethodError: undefined method `empty?' for nil:NilClass
            rails/actionpack/lib/action_dispatch/routing/redirection.rb:31:in `serve'
            rails/actionpack/lib/action_dispatch/journey/router.rb:43:in `block in serve'
            rails/actionpack/lib/action_dispatch/journey/router.rb:30:in `each'
            rails/actionpack/lib/action_dispatch/journey/router.rb:30:in `serve'
            rails/actionpack/lib/action_dispatch/routing/route_set.rb:676:in `call'
            rails/actionpack/test/abstract_unit.rb:120:in `call'
            2.1.1/lib/ruby/gems/2.1.0/gems/rack-test-0.6.2/lib/rack/mock_session.rb:30:in `request'
            2.1.1/lib/ruby/gems/2.1.0/gems/rack-test-0.6.2/lib/rack/test.rb:230:in `process_request'
            2.1.1/lib/ruby/gems/2.1.0/gems/rack-test-0.6.2/lib/rack/test.rb:123:in `request'
            rails/actionpack/lib/action_dispatch/testing/integration.rb:296:in `process'
            rails/actionpack/lib/action_dispatch/testing/integration.rb:31:in `get'
            rails/actionpack/lib/action_dispatch/testing/integration.rb:334:in `block (2 levels) in <module:Runner>'
            rails/actionpack/test/dispatch/routing/redirection_test.rb:33:in `block in test_redirect_https_with_url_and_port'
            rails/actionpack/test/dispatch/routing/redirection_test.rb:207:in `with_https'
            rails/actionpack/test/dispatch/routing/redirection_test.rb:32:in `test_redirect_https_with_url_and_port'


          2) Error:
        TestRoutingRedirect#test_redirect_with_url_with_port:
        NoMethodError: undefined method `empty?' for nil:NilClass
            rails/actionpack/lib/action_dispatch/routing/redirection.rb:31:in `serve'
            rails/actionpack/lib/action_dispatch/journey/router.rb:43:in `block in serve'
            rails/actionpack/lib/action_dispatch/journey/router.rb:30:in `each'
            rails/actionpack/lib/action_dispatch/journey/router.rb:30:in `serve'
            rails/actionpack/lib/action_dispatch/routing/route_set.rb:676:in `call'
            rails/actionpack/test/abstract_unit.rb:120:in `call'
            2.1.1/lib/ruby/gems/2.1.0/gems/rack-test-0.6.2/lib/rack/mock_session.rb:30:in `request'
            2.1.1/lib/ruby/gems/2.1.0/gems/rack-test-0.6.2/lib/rack/test.rb:230:in `process_request'
            2.1.1/lib/ruby/gems/2.1.0/gems/rack-test-0.6.2/lib/rack/test.rb:123:in `request'
            rails/actionpack/lib/action_dispatch/testing/integration.rb:296:in `process'
            rails/actionpack/lib/action_dispatch/testing/integration.rb:31:in `get'
            rails/actionpack/lib/action_dispatch/testing/integration.rb:334:in `block (2 levels) in <module:Runner>'
            rails/actionpack/test/dispatch/routing/redirection_test.rb:77:in `test_redirect_with_url_with_port'

Also split the redirection tests out of dispatch/routing_test.rb in the process as they were easily separable and routing_test is a bit overloaded.