Integrate numeric functions contributed by Bibudh Lahiri -- Thanks, Bibudh! --
and patch HSQL backend and VoltDB type system issues found in unit testing them.
Merge branch 'master' into ENG-4008

Conflicts:
	tests/frontend/org/voltdb/regressionsuites/TestFunctionsSuite.java
For ENG-4098, Robustify digest generation and parsing, and avoid duplicates when generating per partitiong txnids for snapshots
For ENG-4098, switch to a map for per partition txnids and include the multi-part 0 txnid at startup
For ENG-4098, fix startup bug
For ENG-4098, robustify the barrier used for snapshot setup

Instead of initializing with a variable number of things and getting it wrong, always initialize to the number of sites on the host.

Have all site threads even those involved in rejoin arrive at the barrier when they are needed by checking for waiters (don't judge me!)

This gives us the isolation from changes in rejoin state that we need.
Optimize prematurely
For ENG-4098, counter for when a snapshot is done is broken.

Fix it by recording exactly which sites are involved using a synchronized set of the snapshot site processor objects.

This requires an exit barrier for snapshot setup because it is possible for a site to finish setting and finish the snapshot before another site has even registered itself in the set. This causes the terminator to run early.

Also add a missing barrier check to RejoinProducer live rejoin, while it is spinning it needs to monitor the barrier.
Use immutable maps and string intern in a few places
Throw an SQL-compliant error for numeric functions that result in NaN or Infinities.
Make numeric processing in the HSQL backend more SQL compliant, mostly with changes cherry-picked from a later version.
Add a functions unit test to run HSQLBackend interference for past sqlcoverage issues
Rewrote sqlcoverage IdGenerator to avoid id duplication, so sqlcoverage tests get more rows, fewer uniqueness constraint violations.
Cache UTF-8 encoded bytes for stored proc names in command log
Add missing null check
I can't stare at this mispelled ^H^H^H^H^H^Hspelled word any more.
ENG-4130: Add ZK version check to host count node.

Multiple processes could be racing to modify this ZK node, add version check to
make sure it writes things atomically.
For ENG-4098, fix missing barrier arrival in pauseless rejoin.
Merge branch 'master' into ENG-4098
For ENG-4098, remove debug output