Represents a Tree of Objects of generic type T. The Tree is represented as a single rootElement which points to a List> of children. There is no restriction on the number of children that a particular node may have. This Tree provides a method to serialize the Tree into a List by doing a pre-order traversal. It has several methods to allow easy updates of Nodes in the Tree.