Tree structure used to represent Trees.
Every tree stores Trees as children and have a parent children.
If the parent is null then the Tree is the root.
Add new element to tree.
Object to be added to the three, if object is not a tree a new tree is created automatically.
Clone tree recursively.
The cloned tree has the same UUID.
Print tree into console, recursively.
Recursive parameter, not required.
Remove element from tree.
Element to be removed from the three