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.
Put this in an anonymous namespace.