func DumpSubtrees(ls storage.LogStorage, treeID int64, callback func(string, *storagepb.SubtreeProto)) {
	m := ls.(*memoryLogStorage)
	tree := m.trees[treeID]
	pi := subtreeKey(treeID, 0, []byte{})
	tree.store.AscendGreaterOrEqual(pi, func(bi btree.Item) bool {
		i := bi.(*kv)
		if _, ok := i.v.(*storagepb.SubtreeProto); !ok {
			return false
		}
		callback(i.k, i.v.(*storagepb.SubtreeProto))
		return true
	})
}
DumpSubtrees will traverse the BTree and execute a callback on each subtree proto
that it contains. The traversal will be 'in order' according to the BTree keys, which
may not be useful at the application level.
package memory
import (
	"github.com/golang/glog"
	"github.com/google/btree"
	"github.com/google/trillian/storage"
	"github.com/google/trillian/storage/storagepb"
)
func Dump(t *btree.BTree) {
	t.Ascend(func(i btree.Item) bool {
		glog.Infof("%#v", i)
		return true
	})
}