Better reconnect strategy
This commit refactors the ConfigFunc to return errors if the client is already started. The publishing error channel is not blocking anymore if
the client is closed.
We create only one exchange throughout the life of the client even if the worker count is more than 1.