ENG-3764: Add Iv2InitMsg deduping to the replay sequencer.

Refactored IV2 initiators so that the base scheduler contains the replay
sequencer and does all the sequencing of replayed txns. If a message can be
delivered, it calls deliver() on the concrete scheduler.

IV2InitiateTaskMessages will be deduped at the base scheduler. If an initiate
task message is a duplicate, a duplicate response will be sent to the client
without delivering the message to the concrete scheduler.

The partition replicas updates their last seen txnId on message delivery. A
newly promoted MPI updates its last seen txnId on repair.
ENG-3764: Generate sentinel response at the SPI instead of the ClientInterface.

@SendSentinel message needs to get into the CIHM in order to be repaired on
failure. For the DR agent to know when failure resolution finishes, the response
needs to be generated by the SPI instead of the CI.
ENG-3764: Only queue a complete txn message in the ReplaySequencer if the first
fragment has arrived.

If a complete txn message for restart is queued without first fragment, it will
be run after the first fragment, which is wrong.
ENG-3764: Return a mock stats context in MockVoltClient.
ENG-3764: Add comments to explain ReplaySequencer fix.
Merge pull request #355 from VoltDB/wip-dr

ENG-3764: Dedup DR transactions in the replica cluster