use reactive-rabbit and newest akka-streams

Quite a lot changes to the API.

For update:
- [x] code
- [ ] comments
- [ ] tutorial
This is way too complex. I would suggest going that way:

```Scala
def setupRabbit(): Future[Unit] = 
  Future.sequence(Seq(
    // declare inbound exchange and bind queue to it
    connection.exchangeDeclare(inboundExchange).flatMap(_ ⇒
      connection.queueDeclare(inboundQueue).flatMap(ok ⇒
        connection.queueBind(ok.queue, inboundExchange.name, "")
      )
    ),

    // declare outbound exchange and bind two queues to it
    connection.exchangeDeclare(outboundExchange).flatMap(_ ⇒
      connection.queueDeclare(outOkQueue).flatMap(ok ⇒
        connection.queueBind(outOkQueue.name, outboundExchange.name, outOkQueue.name)
      ).flatMap(_ ⇒
        connection.queueDeclare(outNokQueue).flatMap(ok ⇒
          connection.queueBind(outNokQueue.name, outboundExchange.name, outNokQueue.name)
        )
      )
    )
  )).map(_ ⇒ ())
```