QPID-5366: qpid segfaults in qpid::ha::BrokerReplicator::disconnected

Fix for a race condition: previously, BrokerReplicator created a separate
ConnectionObserver object to forward connection events to it. However the
Observers locking is such that it is possible for an event to arrive *after*
calling Observers::remove (Observers copies the pointers and delivers events
outside its lock.) This meant that it was possible for a call to
BrokerReplicator::disconnect to be made after the BrokerReplicator was deleted.

The fix is to combine BrokerReplicator and BrokerReplicator::ConnectionObserver
into a single object with one lifetime that will last until it is removed from
both the ExchangeRegistry and the ConnectionObservers.

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1543893 13f79535-47bb-0310-9956-ffa450edef68