I am not sure this is the right way to do that, from a OO point of view. Splitters should be independent from the way the trees are built. Here, `n_relevant_features` is clearly depends on the fact that you assume that it will be used throught `DepthFirstTreeBuilder`. 

I'll have a deeper look tomorrow.