For ENG-4829, replace COWMap/Set with Cliff Click's NonBlockingHashMap/Set.
Fix fired asserts. Asserts get fired because EstTime is no longer
used for m_lastPendingWriteTime, so we can not predict accurate
interval number now.
For ENG-4763, use larger stack size in SingleThreadExecutor to avoid StackOverflowError when remote database is down
For ENG-4763, add apache tomcat connection pool to the third party readme
For ENG-4763, add tomcat to lib directory
Revert back to EstTime in NIOWriteStream.
modify parameter of getSingleThreadExecutor method
Replace ConcurrentSkipListMap with NonBlockingHashMap, and add third party license.
For ENG-4854, copy export data onto the heap to avoid issues with double free and use after free
For ENG-4854, clarify memory ownership, once it is pushed it belongs to Java
ENG-4863: Cache the buffer used to load stream snapshot data on each site.

Each StreamSnapshotSink used to cache its own buffer used for load table. During
join, a single site can have multiple StreamSnapshotSinks, but only one of them
will be used to restore data at once. Cache the buffer at the site level so that
each site doesn't end up allocating more buffers than needed.
Merge pull request #601 from VoltDB/ENG-4854

Eng 4854 Fix crash in export buffer handling
Merge pull request #600 from VoltDB/ENG-4863

ENG-4863: Cache the buffer used to load stream snapshot data on each site
Consolidate sending and ack tracking threads used by StreamSnapshotDataTargets
to one per node.

The will only be one sending thread and one ack tracking thread per node for
stream snapshot. They share the same mailbox. All the StreamSnapshotDataTargets
will pass work to these two threads.
Consolidate StreamSnapshotSinks used during join to one per site.

Each sink will be receiving data from multiple sources.
Merge branch 'master' into stream-refactor

Resolved conflicts:
	src/frontend/org/voltdb/iv2/ElasticJoinProducer.java
	src/frontend/org/voltdb/rejoin/StreamSnapshotSink.java
Merge pull request #602 from VoltDB/stream-refactor

Consolidate threads used for stream snapshot during join
jenkins tool clone jobs: add endurance system tests to jobs cloned
ENG-4870: Only terminate sender and ack tracking threads when all stream
snapshot data targets are finished.

Some data targets may close earlier than the others. For those that close early,
they shouldn't terminate the global sender thread and the global ack tracking
thread. The thread should only be terminated after all data targets have
finished doing their works.
Merge pull request #603 from VoltDB/ENG-4870-stream

ENG-4870: Only terminate sender and ack tracking threads when all stream snapshot data targets are finished