Retry helper should take max attempts into account. Throw a RuntimeException if
the max attempt has been reached.
Reset row position after unioning the tables in the helper class.
ENG-5843: Moving pre-snapshot scan to a dedicated IO agent.

The SnapshotDaemon will dispatch a scan work to the snapshot IO agent on each
node before initiating a snapshot. If the check fails, the snapshot will not be
initiated.
ENG-5843: Don't spin the SnapshotDaemon thread when waiting for scan results.
ENG-5843: Timeout waiting for scan results in SnapshotDaemon.
Merge pull request #1173 from VoltDB/ENG-5843

ENG-5843: Move snapshot scan out of SnapshotSave