Optimal Decision Tree Pruning Revisited: Algorithms and Complexity