ENG-5051: Some logging improvements when this occurs.
ENG-5051: Reduce TheHashinator to a single public method to hash
parameters to partitionId (getPartitionForParameter).  Includes the
following additional behaviors or side-effects:
- In many places, for LEGACY hashing, we would detect numeric types
and convert byte arrays back to numeric types in situ.  Push this
functionality into getPartitionForParameter() and remove it from:
-- ClientInterface.getLoadSinglePartitionTablePartitionParam()
- Replace use of hashToPartition with getPartitionForParameter in the
  following locations:
-- ClientInterface.dispatchLoadSinglePartitionTable()
-- ClientInterface.createAdHocTransaction()
-- ParameterSet.getHashinatedParam()
--- This is only used by the client but required changes to the client
    affinity implementation in order to actually hash correctly if the
    client uses string representations of numeric types.
-- SnapshotRestore.createPartitionedTables()
-- CommandLogReinitiatorImpl.TaskMessageConsumer
--- We hashed incorrectly in two places, once when determining whether
    or not to skip replaying a log entry, and again before initiating the
    transaction.  Neither of these hashes is actually necessary, since the
    partition ID is logged to disk and we cannot rehash during command
    log replay.  I just ripped the hashing out entirely.
-- LogReader
--- This could be run as a stand-alone class against a command log,
    but only against legacy logs, not IV2 logs.  Deleted this functionality.
-- TestCommandLogReinitiator, TestLogReader, TestRestoreWithReplay
--- These legacy command log tests haven't been run as part of junit
    or even passed since IV2 shipped due to the lack of a valid
    SyntheticLogGenerator.  Deleted them all rather than "fix" and
    removed them from the excluded junit test set.
-- TestTheHashinator (obviously)
--- Add tests that verify that the numeric, string, and byte[]
    representation of longs all map to the same partition.
For ENG-4883, handle duplicate rows during safe restore when loading/converting replicated data
For ENG-4883 based on Wei Wei's feedback, make unique violations with a null duplicate row handler a hard failure
For ENG-4883, fix bug where the output buffer for duplicates was not initialized empty
ENG-5051: Review fixups:
- Narrow the exception type thrown by stringToLong so it can be
  distiguished from other, future, disasters
- Additional safety/sanity checking that the thing we want to convert
  into an integer type is actually an integer type and converts to an
  integer type.
For ENG-4883, more cleanup based on review. Factor out common code to a helper
For ENG-4883, test that a snapshot restore without duplicate handling fails as expected
Merge pull request #701 from VoltDB/ENG-4949-decode-null

Eng 4949 decode null
csvbenchmark: report timings in seconds not ms; change program defaults; disable doNothing stored procedure
ENG-5050: Eliminate a harmless but scary log message with belt,
suspenders, and staples:
- Check for trace-level logging enabled before calling that log method
  on log4j
- Construct an actual empty parameter set to feed the empty
  FragmentTaskMessage that we use to serialize multiple restart attempts
  when the first batch is a local read fragment.
- When printing the message to the console, print a special message
  describing the message purpose rather than empty FragmentData.
ENG-5050: Fix a brainfart typo (thanks, jhugg!)
Merge pull request #706 from VoltDB/eng5050

ENG-5050
Merge remote-tracking branch 'origin/master' into eng5051

Conflicts:
	build.xml
ENG-5051:  This is the real merge commit.  I forgot to mark everything
for inclusion after resolving a conflict.  Hopefully this doesn't muck
up the merge back to master.
Merge pull request #703 from VoltDB/ENG-4883

For ENG-4883, handle duplicate rows during safe restore when loading/con...
Merge pull request #699 from VoltDB/eng5051

Eng5051, r=jhugg
Go backwards compatible