ENG-5601: Fix findBlock in persistent table and the COW context.

When the COW context looks for the block that contains a tuple, it's checking if
the block start address + block size is smaller than the tuple address, if not,
the tuple is thought to be in the block. If two blocks are adjacent and the
tuple is the first one in the latter block, it would actually think that the
first block contains the tuple. The check should be smaller than or equal to,
because the start address is inclusive.

persistenttable.findBlock() also has the same problem. I consolidated the three
blocks in CopyOnWriteContext.cpp and persistenttable.h into one.
ENG-5601: Fix new findBlock test in EE.

Actually allocate some memory to fake tuple blocks, because the tuple block
pointers will try to free them afterwards.
ENG-5601: Fix tuple block cleanup in the COW iterator.

The COW iterator was releasing a tuple block once it starts working on it. This
tricked the COW context to think that a tuple falling into the block is not
worth dirtying even though it is.

Now the COW iterator just erases blocks from the tuple block map when it
finishes working on them.
ENG-5601: Fix leak in findBlock() EE test I added.
ENG-5601: Fix EE findBlock test on mac.

Use thread local pool for allocation so that when the pointers are released, the
tuple blocks will be cleaned up properly.
Merge pull request #1029 from VoltDB/ENG-5601

ENG-5601: Fix findBlock in persistent table and the COW context.