Use a single write txn
Remember oldest reader txnid

Don't walk the readers table unless we really need to.
More for me_pgoldest

Leave it in main env struct, it doesn't need to be rolled back
with nested txns.
Change retry to num times 60.  Testing shows that on a known dataset, this has the same growth behavior as 2.4.39, while num times 20 resulted in significant growth.
Merge remote-tracking branch 'origin/mdb.master' into OPENLDAP_REL_ENG_2_4
ITS#7937 flush data to socket
ITS#7937
 lmdb: clean testdb-dir while "make test".
 lmdb-backend: checkpoint-interval seconds instead of minutes.
 lmdb: implementation of "checkpoint kbytes",
       force flush when volume of the changes reached a configurable threshold.
 lmdb-backend: implement "checkpoint kbytes" option.
 lmdb: lifo-1, list of reclaimed freedb records.
 lmdb: lifo-2, reclaim free-db records from reader's tail.
 lmdb: aim to coalesce reclaimable records in freeDB.
 fix: reordering of instructions which update the txn in a meta-page.

 Without "volatile" or memory-barrier compiler may reorder instructions
 for update the "mm_txnid" field in meta-page in "writemap" mode.

 From the reader's point of view this cause a short
 time interval when the transaction is corrupted.