restructure for class inheritance, remove test bug

huge restructuring, allowing for a more intuitive devide between the
Tree structure of the decision tree (DTreeNode) and the higher-level
interface to the decision tree handling algorithm