syncbase: various small additions and enhancements

- stop returning error from Table.Scan
- make app/db/table delete idempotent
- implement Table.DeleteRowRange
- add basic perms check to Table.Scan
- various comment and TODO tweaks
- drop WrapError, use verror.Convert

Change-Id: Ib3d34c14751d39c2c7e324945ab30e347cd07e30
diff --git a/services/syncbase/store/leveldb/db.go b/services/syncbase/store/leveldb/db.go
index 62250c6..eb8507c 100644
--- a/services/syncbase/store/leveldb/db.go
+++ b/services/syncbase/store/leveldb/db.go
@@ -31,18 +31,15 @@
 	writeOptions *C.leveldb_writeoptions_t
 	err          error
 
-	// TODO(rogulenko): decide whether we need to make a defensive copy of
-	// keys/values used by transactions.
-	// txmu protects transaction-related variables below. It is also held during
-	// commit.
-	// txmu must always be acquired before mu.
+	// txmu protects the transaction-related variables below, and is also held
+	// during transaction commits. It must always be acquired before mu.
 	txmu sync.Mutex
 	// txEvents is a queue of create/commit transaction events.
 	txEvents         *list.List
 	txSequenceNumber uint64
 	// txTable is a set of keys written by recent transactions. This set
 	// includes all write sets of transactions committed after the oldest living
-	// transaction.
+	// (in-flight) transaction.
 	txTable *trie
 }
 
@@ -81,7 +78,7 @@
 	d.mu.Lock()
 	defer d.mu.Unlock()
 	if d.err != nil {
-		return store.WrapError(d.err)
+		return convertError(d.err)
 	}
 	d.node.Close()
 	C.leveldb_close(d.cDb)
@@ -226,7 +223,7 @@
 	d.mu.RLock()
 	defer d.mu.RUnlock()
 	if d.err != nil {
-		return valbuf, store.WrapError(d.err)
+		return valbuf, convertError(d.err)
 	}
 	var cError *C.char
 	var valLen C.size_t