[MRG] tree: add min_weight_fraction_leaf stopping criterion

This PR adds a new decision tree stopping criterion: ``min_fraction_leaf`` that requires a minimum weighted fraction of the input samples to be present in all leaf nodes. This criterion is more appropriate than ``min_samples_leaf`` when you have weighted samples and many more samples of one class than another.

When using ``min_samples_leaf`` on a dataset with many more samples in class B than A, the splitting can be very biased on the larger sample B since it is mainly restricted by the size of that sample in each node, which will dominate over the the samples of the other class. Instead one should normalize the weights of the samples in each class separately and restrict the node splitting by some minimum fraction of the overall weighted sample size.

Grid-searching ``min_fraction_leaf`` is also more intuitive than ``min_samples_leaf`` since it doesn't depend on the sample size.

TMVA also recently deprecated their ``nEventsMin`` parameter (like our ``min_samples_leaf``) and replaced it with ``MinNodeSize``, implemented like this ``min_fraction_leaf``. See their docs on page 112: 

http://tmva.sourceforge.net/docu/TMVAUsersGuide.pdf

EDIT: the parameter is now called ``min_weight_fraction_leaf``
cosmetic/nitpick : With such loop, it's possible to do

``` python

from itertools import product

for max_leaf_nodes, tree, frac in product((None, 1000), 
                                          ALL_TREES, 
                                          np.linspace(0, 0.5, 6))
    TreeEstimator = ALL_TREES[tree]
```
and avoid to many nested indentation levels.