Detect when heartbeat reply ping is no longer received

set an event when a ping is sent, and clear it when we receive a reply ping

if a ping is outstanding at the next heartbeat, assume the connection is lost

ConnectionDropped is then raised so that session recovery can be attempted with a different ZooKeeper node