Introduce middleware for request dispatch and console rendering

Having to copy and maintain the Rails templates in sync was trouble. Having `ActionDispatch::DebugExceptions` dispatching requests for Web Console was out of place. Having an after action in the controller, that avoids the render process was bad. It was clear that we need a better solution.

I'm proposing to solve all that with a smartly placed middleware between `ActionDispatch::DebugExceptions` and `ActionDispatch::ShowExceptions`. Now every page can have an attached console, as long as the application passed a binding (or an exception to extract a binding from) down to the application.

This makes the `console` view and controller helpers a really thin wrapper that communicates with the middleware. Because we can only attach one binding or one exception, we don't need to handle how to avoid double console rendering.

The error pages are a bit special, because we have a stack of bindings and we can change them. This is done with extra JavaScript working with current `ActionDispatch::DebugExceptions`. The only drawback of this is that it works only with Rails 4.2 templates, but I think this is a good compromise. If this is a requested feature for older Rails installation, we can implement it for them too– it would take only a little bit of JavaScript.

Last and not least, testing the middleware is quite easier, so it can give us more confidence about the console.
I was thinking of putting `render`-like semantics here. E.g. raise if you are to have two consoles, instead of getting surprised if the console is in an unexpected binding. @rafaelfranca wdyt?