1. Replace single transaction list with separate undo/redo deques
2. Update UndoHistory GUI to work with new queue setup
3. Add test to txn.py for empty transaction list
svn: r15427
bsddbtxn.py -- Wrapper for BSDDB DBTxn to support context manager protocol
txn.py -- GrampsDbTxn class to manage atomic transactions
write.py -- GrampsDbWrite class for read/write databases
read.py -- GrampsDbRead class for read-only databases
undoredo.py -- GrampsDbUndo class to manage the undo database
upgrade.py -- Helper module for upgrading a database at open time
svn: r13078