raft: heartbeat is only response for maintaining leader dominance

Separate the health checking logic and actual entry appending logic.

Follower will always reply `accept` to heartbeat. Heartbeat will not trigger `msgApp` or `msgSnap` even if the follower is not synced with leader or is not matched with leader's log.
if there is a new proposal, the leader will send slow follower the latest snapshot, but will not send it the entries after the snapshot.
is this correct?