Bunch of bug fixes:
 - fix simple bug in Consensus::shouldRelinquish()
 - fix bug after last merge
 - fix two bugs: remove isElectable from shouldVeto, and in second phase of election, set voteYes to the return value of acceptPossiblePrimary
 - when noticing a second primary, only note it if we are not primary, having two primaries temporarily is ok
 - fix shouldRelinquish to not require the member to be up to check its GTID and highestKnownPrimary
 - fix bug in resetManager. It's possible that after the election succeeds but before replication is stopped, a competing election also wins, writes data, and replicates to us. In such a case, we need to gracefully fail the election
fix handling of sleptLast in Consensus, now it properly gets reset to false during each election.
have assumePrimary check the highestKnownPrimaryAcrossSet before becoming primary, because there is no sense to become primary only to immedietely step down. Also log information about sleeps during elections
After election succeeds, send a command from primary to force a heartbeat,
thereby relaying info that a new primary has been elected. If we don't do this,
this information won't percolate until the next natural heartbeat, which may
be up to 2 seconds. That is too long. Could lead to multiple primaries.
Add a lot of comments
small refactoring of CmdReplSetFresh
Fix weAreFreshest to also do a prelim tally of votes
remove some dead code from repl_block.cpp and repl_block.h
fix gle