more windows build work
CPython: first pass at readonly txn freelist

with 2047 of 2048 reader slots allocated:

$ python -mtimeit -s 'import lmdb; e = lmdb.open("/tmp/test")' 'e.begin().abort()'
100000 loops, best of 3: 10.1 usec per loop

$ git stash &>/dev/null ; python setup.py build &> /dev/null
$ python -mtimeit -s 'import lmdb; e = lmdb.open("/tmp/test")' 'e.begin().abort()'
1000000 loops, best of 3: 0.47 usec per loop

with 0 of 2048 reader slots allocated:

$ python -mtimeit -s 'import lmdb; e = lmdb.open("/tmp/test")' 'e.begin().abort()'
1000000 loops, best of 3: 1.91 usec per loop

$ git stash pop &>/dev/null ; python setup.py build &> /dev/null
$ python -mtimeit -s 'import lmdb; e = lmdb.open("/tmp/test")' 'e.begin().abort()'
1000000 loops, best of 3: 0.472 usec per loop
Update ChangeLog.
more windows build work
Whoops, trans_flags is a bitfield.
CPython: fixes for txn freelist

* If environment is invalidated then trans_clear() would be called,
  which would correctly obliterate all resources if valid==1, except
  that caused trans_dealloc() to crash since unconditional self->env
  dereference.

* If .commit() or .abort() were called on read-only txn, valid is unset
  but the MDB_txn would not yet be freed. Update trans_clear() to also
  invalidate everything if TRANS_SPARE is set.
Update env_test to cope with cached readers

Need to open completely independent environment and close it in order to
ensure cached readers are closed.
Add explanatory note
added interface to set nolock flag
added unit tests for nolock flag
bumping version
fixing typo
Merge pull request #64 from smartkiwi/nolock_flag

Adding NOLOCK flag to lmdb.open
Remove double-not and fix some flipped logic for MDB_NOLOCK

This replaces the previous 'nolock' parameter with 'lock', to match
existing precedent of flipping double negatives.

Update docstring to use MDB_NOLOCK documentation verbatim
Better docment DbObject.env semantics
CPython: add MDEBUG() helper
CPython: avoid abort() when Py_TRACE_REFS enabled

_Py_ForgetReference does not approve of refcnt>0 when it has been
called, so use the regular refcounting machinery to delete our
half-built instance.
CPython: freelist txn should have 0 refcount

Same reason as previous commit, the tracing allocator complains when we
call PyObject_Del() during env_clear(). Now the ref count is maintained
the same way tupleobject manages its freelist.
CPython: make Env.close() equivalent to env_clear().

The functions were essentially identical already, except env_close()
wasn't clearing out the freelist.
CPython: cleanup trans_dealloc slightly