lmdb: properly sync meta-pages in mdb_sync_env(),

       check-and-retry if lead txn-id changed
       during flushing data in mdb_sync_env().
 lmdb-backend: support for "checkpoint kbytes" config-option.
 lmdb: MDB_LIFORECLAIM & MDB_COALESCE modes.
 lmdb: 'volatile' to important fields which
       may be updated by readers asynchronously.
 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.
 writemap: lock meta-pages to avoid unexpected write,
           before the data pages would be synchronized.
 lmdb-backend: stack backtrace on SIGSEGV and friends;
 ! debugging crutchs, MUST be removed before release.

   conditionally enforce MDB_LIFORECLAIM & MDB_COALESCE;
   test pattern hack (this crunch MUST be remove later);
   asserts for check reclaimable;
   inject SIGSERV on 42th checkpoint;