LMDB read-only transaction limit fix

I incorrectly assumed that you could have many concurrent read-only transactions with LMDB.  This preallocates a single read-only transaction that can be reused until commit has been called.

This still leaks cursors.  I need to find out whether or not those are automatically cleaned up when a transaction aborts or commits.

New test cases included.