For ENG-2927, add more exception handling to SnapshotDaemon, to avoid dropping errors
ENG-4384: Add a CLI arg to disable adhoc writes in txnId-selfcheck2.
Merge branch 'master' into ENG-2927
For ENG-2927 improve snapshot daemon logging/exception handling

Added catch blocks for a lot of places that appear to be uncovered or accidentally captured by a closure submitted to an executor service.
Added a catch block to SnapshotCompletionMonitor when it invokes interests, this will prevent a single interest that throws from stopping the event from reaching the other interests
Added a bunch of logging throughout the lifecycle of a truncation request in snapshot daemon to make it a little easier to track what path it is going down and also added a truncation request
ENG-4384: Add a naive rate limiter to txnId-selfcheck2.
ENG-4384: Set spHandle on CompleteTransactionMessage.

CompleteTransactionMessages truncates the FragmentTaskMessages in the repair
log. On SPI repair, if the complete message doesn't have the latest spHandle,
the new master may generate an spHandle that's already been used before. Set the
spHandle for each complete message so that they can advance the max seen
spHandle on repair.
ENG-4306 Make VoltTableUtil.CSV_NULL public for use by client programmers.
ENG-4384: Move txnId-selfcheck2 permit reset code to the rate limiter per John's
review.
Merge pull request #387 from VoltDB/ENG-4384

ENG-4384: Modifications to txnId-selfcheck2 for DR tests
ENG-4402: Fix deadlock with backpressure callback in Distributor.
Revert "ENG-4402: Fix deadlock with backpressure callback in Distributor."

This reverts commit f07ae08c59bf37b574a2889adc0af9c915bd82e2.
ENG-4402: Fix deadlock with backpressure callback in Distributor.
ENG-4382: Add unit tests for old-style @SnapshotSave argument parsing in SnapshotDaemon.
ENG-4382: Add some quick unit tests for JSON param to @SnapshotSave
ENG-4382: Extract initial legacy and json param validation
ENG-4382: Create SnapshotInitiationInfo, start threading it around, not yet used
ENG-4382: Start using SnapshotInitiationInfo at the lowest level
ENG-4382: Convert snapshot initiation param validation into parsing, return
SnapshotInitiationInfo object
ENG-4382: Move params parsing into a new SnapshotInitiationInfo constructor
ENG-4382: Make it easier to figure out if command logging is enabled.