ENH Bring sparse input support to tree-based methods

Author:     Arnaud Joly <arnaud.v.joly@gmail.com>
            Fares Hedayati <fares.hedayati@gmail.com>
FIX+ENH add min_weight_fraction_split support for sparse splitter
Re-organize code dense splitter then sparse splitter
Simplify call to extract_nnz making it a method
ENH while -> for loop
ENH reduce number of parameters
FIX min_weight_fraction_split with random splitter
FIX min_weight_leaf in best sparse splitter
ENH remove spurious code
cosmit
ENH adaboost should accept c and fortran array
COSMIT simplify function call
ENH expand ternary operator
Revert previous version
ENH move utils near its use
ENH add a benchmark script for sparse input data
Extract non zero value extraction constant
Lower number of trees
wip benchmark
Temporarily allows to set algorithm switching through an environment variable