First stab at ENG-4059, need to add test cases for the unique ID generator's handling of time shifts
Fix broken sleep loop that meant to sleep for just 1 millis
Bring back clock skew check at socket join time
Modify export to file client to support base64 encoding VARBINARY columns
Switch to hex encoding by default for the ExportToFileClient on server.
Switch to a faster base64 encoder and remove unused methods from Encoder.java
Switch to fast version of the base64 decoding function.
ENG-3508 Some IV2 logging cleanup.
Improve CRC32 support and add CRC32c support.

Add PureJavaCrc32 and PureJavaCrc32c from Apache Hadoop common. These are faster and don't use JNI requiring the data to be copied off the java heap.

The C version uses a different polynomial that matches the output of SSE 4.2 hardware CRCs.

Also add native code to for calculating CRCs that will use the SSE 4.2 instruction if compiled with -msse4.2, and it will gracefully fall back to using Intel's slicing by 8 algorithm if -msse4.2 is not specified or there is no hardware support.

You can also access this native CRC code from java via DBBPool if the data is in a direct byte buffer. Otherwise it might be better to use a pure Java method that avoids the JNI copy.

Snapshots now use CRC32C so that the hardware instruction or slicing by 8 can be used.

Ultimately I would like to move the checksum process for snapshots out of the execution sites and do it after the data has been compressed instead of before so that we have less data to checksum.

The build doesn't specify -msse4.2 because CentOS 5 uses GCC 4.1 which doesn't support SSE 4.2. I think that came in GCC 4.2.
Swizzle snapshot checksums and compression for better performance.

We used to checksum the snapshot in the EE before compressing it. This was a waste because we can compress then checksum and do less work overall and do it in a background thread. The goal is to reduce the latency impact of a snapshot by making the EE spend as little time as possible serializing tuple data.

Another issue was that adding compression added copies, and Java heap allocations. It's now zero copy and all the data is stored off the heap during a snapshot. Native helper methods are used to do the compression and checksums.

The method in TableSaveFile for parsing snapshot data goes all the way back to supporting 1.0 snapshots and there is actually a unit test for that!
It was getting out of hand trying to do both, so I created a new one that only handles the new format and tolerated some cut and paste.
Pardon my fail, header offset still in use by pauseless rejoin
Merge branch 'master' into ENG-4059
Integrate unique id updates into failure repair process and refactor naming
Merge branch 'master' into ENG-4059
Fix snapshot test bugs, add test. Fix DBBPool accounting.

Fix TestTableSaveFile by modifying it to use the 3.0 format.

Fix missing accounting for direct byte buffer memory in DBBPool. Also add a method for allocating a buffer and retrieving the address at the same time.

Add a test for restoring a pre 3.0 snapshot generated by 2.8.4.1 so we know if we break backwards compatiblity we get a warning.
Paper over the disaster that is the idle thread count
Fix EE tests broken by new snapshot serialization format
Swizzle some more periodic work stuff. Remove the heartbeat thread, and break out periodic tasks.

Created two periodic work threads. One for high priority tasks that we know complete promptly, and leave the old one servicing somewhat suspect tasks.

Removed the heartbeat thread in IV2 by moving everying except for tick into schedule periodic tasks.

Going to try disabling mailbox tracker and fault distributor next.

Also broke out the stack size into a constant for small stacks so we can fix it later if necessary.

Also fix a few more thread names that had a number at the end.
Don't set a max thread count for the Jetty QueuedThreadPool, will default to 254
Merge branch 'master' into ENG-4059