make BusCtlClient and AgentClient thread safe
lock at the AMQPTransportClient level instead

This is simpler and probably more right.

As for BusCtlClient, since the marshaller is thread-safe, and now the
transport is thread safe, it's is also thread safe, except for the close
and connect method, which don't need anyway to be thread safe.