Rework tag functions
Rework tag functions so that they allow operations on lists of trees (instead of only trees). Tree functions should work with tree-like datasets (root-node), but more general functions e.g. cloning and committing should also work with lists of objects