Remove nova specific code from library

nova had custom reconnect to fix an ancient bug #901375
This code is nova specific and has nothing to do with general purpose
library.

Change-Id: I2e64206457737278e42b374396ddd82d46c9132b
Removed useless Consumer classes from impl_rabbit

There is no need to create separate classes for different consumers they
do not override any parent's methods so factory method is enough.

Change-Id: Ia94c3c47ccecd2903ec68f7229d1403e3a93295b
Removed useless Publisher classes from impl_rabbit

There is no need to create separate classes for different publishers
they do not override any parent's methods so factory method is enough.

Change-Id: I073fcb1884c4eb0b7c5fbc4407ff92b7b7588f35
Moved main loop to server class

This will allow us to simplify dispatchers, executors and provide means
for further refactorings.

TODO refactor tests
Refactor tests to work with new executors

TODO finish the patch
WIP
move waiters from amqpdriver to rpc.drivers
Working on rabbit listener