CForest new version

Do not focus on the documentation, I am leaving it for the end since there are a lot of changes and probably more to come.
Removed virtual. However, I would keep the setStates name, For me there is a semantic difference. addStates means to add new states to the already added. However this function clears the statesToSample_ vector and sets new states to sample.