ClusterHeartbeatManager manages the heartbeat sending and receiving
 process of a node.
 
 It periodically sends heartbeat to the other nodes and stores heartbeat timestamps
 per node when a heartbeat is received from other nodes. If enabled and required, it can send
 ping packets (an ICMP ping or an echo packet depending on the environment and settings).
 
 If it detects a member is not live anymore, that member is kicked out of cluster.
 
 Another job of ClusterHeartbeatManager is to send (if not master node) and track (if master)
 master-confirmation requests. Each slave node sends a master-confirmation periodically and
 master node stores them with timestamps. A slave node which does not send master-confirmation in
 a timeout will be kicked out of the cluster by master node.