custom reference type for use in mutable iterators,
also moved revision history to revision tree and implemented mutable iterator for dlist