Extract Router out of Controller

The new Router is used like this:

```
require "bunny_service"
require_relative "config"

BunnyService::Router.new(
  exchange_name: CONFIG.fetch(:rabbitmq).fetch(:exchange_name),
  controller:    RabbitAdapter,
).listen
```

It requires a controller class that implements `.action_bindings` and  `#initialize(request:, response:)`