[WIP] Faster random forest / extra trees by avoiding trying to split on constant features

If we find a constant features, we avoid trying to split later on it. This optimization is lightweight for `DepthFirstTreeBuilder`.

TODO list:
- [x] RandomSplitter
- [ ] BestSplitter
- [ ] Presort-bestsplitter?

For extra trees, I already got 
```
$ (sklearn) ± python benchmarks/bench_covertype.py --classifier=ExtraTrees  --random-seed=0


Classifier   train-time test-time error-rate
--------------------------------------------
master        90.2975s   0.3086s     0.0214  
this branch   69.4262s   0.3143s     0.0209  
```