Implements Tree Conflict-Free Replicated Data Type (CRDT).
For usage/examples, see: examples/tree.rs test/tree.rs
This code aims to be an accurate implementation of the tree crdt described in:
"A highly-available move operation for replicated trees and distributed filesystems"  by Martin Klepmann, et al.
For clarity, data structures in this implementation are named the same as in the paper (State, Tree) or close to (OpMove --> Move, LogOpMove --> LogOp). Some are not explicitly named in the paper, such as TreeId, TreeMeta, TreeNode, Clock.
This module contains a Clock. Implements Lamport Clock
This module contains LogOpMove. Implements LogOpMove, a log entry used by State
This module contains OpMove. Implements OpMove, the only way to manipulate Tree data.
This module contains State. Holds Tree CRDT state and implements the core algorithm.
This module contains a Tree. Implements Tree, a set of triples representing current tree structure.
This module contains TreeId. Implements TreeId, a trait for representing Tree (Node) Identifiers
This module contains TreeMeta. Implements TreeMeta, a trait for representing Tree (Node) metadata
This module contains TreeNode. Implements TreeNode, ie a node that is stored in a Tree.