Router: Pass the same `env` variable down

This is very useful when you're writing controller tests:

```ruby
env = env_for(…)
res = app.call(env)
p env['rack.session']
```

This is currently impossible with the current code. I also think in
general it's a good idea to use the same `env` everywhere. It's quite
useful being able to pass data up and down the middleware stack.