unit tests now verify that adding and removing nodes from the tree, either by setting the Parent property or adding or removing children from the current node, keeps all subtrees internally consistent in structure
cleanup;
added some Debug.WriteLine statements for to help trace execution paths and see if there are any duplcate events;
adjusted enum definitions for events that traverse the tree