SERVER-15399 Make networking in  ReplicationExecutor::NetworkInterface asynchronous.

Fully virtualizes time and network scheduling in NetworkInterfaceMock implementation,
and updates tests accordingly.
Allow fuller virtualization of time in replication executor for testing.
SERVER-15458 Change ElectCmdRunner to use an OID for election rounds, not a long long.
SERVER-14561 Change topology coordinator heartbeat processor to return a status, not be a callback.

Heartbeat scheduling requires the replication coordinator to take action during a heartbeat processing
callback, so we cannot schedule the heartbeat processor directly on the topology coordinator.  Instead,
schedule it in a callback in the replication coordinator, and make a regular function call into the
topology coordinator.  This is the preferred interface to the topology coordinator, in general.
SERVER-14561 Heartbeat callback and scheduling.

With this change, the ReplicationCoordinatorImpl should have full heartbeat support, including
primary step-down, standing for election, and heartbeat reconfig.  Unit test coverage is light,
but present.  Every test that needs to set member state to primary or fall back to secondary
exercises the code, along with a unit test of the joining-a-new-node-to-a-replica-set behavior.