removed Impurity struct, Criterion.child_impurity now returns impurity_left and impurity_right (not total), fix: moved pos >= end check to if branch