Extract Router out of Controller

The new Router is used like this:

```ruby
require "bunny_service"
require_relative "config"
require_relative "rabbit_adapter"

BunnyService::Router.new(
  exchange_name: CONFIG.fetch(:rabbitmq).fetch(:exchange_name),
  controller:    RabbitAdapter,
).listen
```

It requires a controller, which is a class that implements `.action_bindings` and  `#initialize(request:, response:)` eg:

```ruby
class TestController
  def self.action_bindings
    { test_action: 'test.foo' }
  end

  def initialize(request:, response:)
    @request, @response = request, response
  end

  def test_action
    { "result" => "test_action got #{@request.params['thing']}" }
  end
end
```