fix walking over modified transaction
bring back ghost records to resemble Iterator

leveldb::Iterator behavior is to keep ghost records under iterator until
next move. This change will adopt this approach in walkers to represent
valid logic under the hood of specific leveldb::Iterator.