[MRG] Sample weights for gradient boosting

and piggy-packed ``'exponential'`` loss for binary classification (= AdaBoost).

I didn't implement sample weights for ``'lad'``, ``'huber'``, and ``'quantile'`` since it would require weighted median / percentiles. I will either raise a warning or exception in this case: what do you prefer?

cc @glouppe

TODO: ~~benchmark benchmark and some regression tests~~
Is there any reason to use `GradientBoostingClassifier(loss='exponential')` over `AdaBoostClassifier`? or is the goal of introducing this loss is to make it easier to do a sanity / correctness check by comparing the two implementations?

If one implementation is always better than the other (e.g. from a CPU or RAM usage perspective I think this should be made more explicit here).