Support multiple queues and multiple bindings to exchanges

Added tests
TODO:
- consider using multiple channels
- improve tests