Add a flag to SnapshotCompletionInterest to indicate the fate of the snapshot.

Here's what I think the contract is. The completion interest will fire on all
finished snapshots, regardless of whether or not the snapshot succeeded, as long
as all nodes have done the work. If node failures happened during the snapshot,
it won't fire.

To determine if the snapshot actually succeeded, check the didSucceed flag in
the event.
Fix a bug in SnapshotSiteProcessor where a failed snapshot could be reported as
succeeded in a very brief window.
ENG-6160: Fail snapshot if data targets for replicated tables fail to close.

It fails the snapshot if the data targets for the partitioned tables fail to
close. Now it does the same for replicated tables.
ENG-6160: Fail the stream snapshot if it fails to send or close.

If the stream snapshot timed out during write or close, it wasn't marking the
snapshot as failed. Now it checks and propagates the exception to the
SnapshotSiteProcessor so that the snapshot can be marked as failed.
Merge pull request #1310 from VoltDB/ENG-6160

ENG-6160: Stream snapshot end failure signaling

r=aweisberg