Rearranged many classes.
Eliminated the Generic Tree/TreeNode combination in favor of a generic
Vistor as part of the Hierarchy interface.
Cleaned up the TestNG usage.