Some light refactoring
Fix some logging that was misattributed to ClusterLeaveReelectionListener, when it should have been HeartbeatRelectionListener
Fix a data race in election causing flaky tests

Assertions are only enabled when running tests. We had an assert that
verified that no existing master was present when a new master was elected.
This occasionally seemed to be the case because we did not properly clear
the current master id from the context.
Make sure we always send VersionedVoteData by asking with proper VoteRequests
Fix test flakiness by making sure that the HA leaders we wait for are also alive
Fix a bug in OnDiskLastTxIdGetter after mode-switch

The previous implementation would only resolve the NeoStore instance once,
and then hold on to it forever. This was a problem because the
OnDiskLastTxIdGetter instance can outlive the NeoStore instance it grabs.
For instance, when there is a mode-switch, where a follower instance
becomes leader, or a leader becomes a follower, the database innards are
restarted. This restarting means, among other things, that a new NeoStore
instance is created.

If we were holding on to the old NeoStore instance, then we'd end up working
with a store that is attached to a dead page cache. We won't notice this,
however, because the NeoStore caches the last txId in an AtomicInteger.
This can lead to the wrong leader being elected, because a follower that
has been promoted to a leader, will vote in all future elections with a
transaction id that is from before it became leader.