Refactor ml2

completely revised opencv_ml code. It's much simpler and more in-line with our current coding methodologies.

There are some drawbacks, however:
1. some of parallelization was removed and not restored yet
2. gradient boosting trees are not included yet
3. extremely random trees are not included yet
4. decision trees lost the support for missing measurements (and surrogate splits as well); pruning has not been tested yet and is currently disabled. On the other hand, those lost features will hardly affect 2 big computer vision algorithms based on decision trees: random trees & boosting.
5. traincascade - our major and one of the most important apps using ml, has not been updated to use the new code. Instead it uses an extracted subset of the old code. But it's probably for the good right now.