store: refactor transactions

This change extracts transaction-specific logic from the leveldb
store and reuses it for memstore.

The change introduces another store API: store without transactions.
Now leveldb and memstore implement that new interface and a new
struct, transactions.manager, is used to wrap leveldb/memstore
with transcation functionality.

The main change - move some code from the leveldb/db.go to
transactions/manager.go. Other changes are mostly moving code around.

Change-Id: Ief56bb262ac660fbf0ea75f2651da90758906b17
15 files changed
tree: 8716d079440551e71c380067da47b3158f012a1b
  1. v23/
  2. x/
  3. .gitignore
  4. AUTHORS
  5. CONTRIBUTORS
  6. LICENSE
  7. PATENTS
  8. VERSION