Basic version of TreeNodeDirectory::compare + unit test passing
support one edge case in TreeNodeDirectory::compare()
Minor refactoring: moved TreeNode* structures to a new package
reorganized new tests a bit