SERVER-15535 Perform better error detection in stepdown.js
SERVER-15535 Use heartbeat progress to wait for secondaries to catch up before stepping down.

Only when processing heartbeat data do we know both that a secondary is caught up
and that it is electable, which are the prerequisites to a step down.