Refactor Publisher and Worker

Move all the connection handling portion into amqp, and refactor the
AmqpPublisher accordingly.
Start cleaning up the AmqpWorker.

TODO: The whole reconnect on connection closed feature is currently
broken / not working. I'll get some more attention once the Worker
will be finalized