BUG: avoid NaNs throwing off class probabilities

In the case where neigh_dist includes at least one zero and self.weights is 'distance',
some values of `weights` may be infinite.
This is ok, except for when normalizing `proba_k`, when it creates NaN values.
fixing warning ignore type
adding test case
conform to pep8
WIP add n_constant_features argument
WIP add constant_features array
ENH avoid splitting on constant features for best splitter
FIX bug with BestSPlitter + ENH avoid searching for a split on constant features
ENH avoid trying to split on constant features for presort best splitter
COSMIT
COSMIT
FIX deallocate memory
FIX proper inititalization
ENH use memcopy instead of while loop
COSMIT
FIX bug with invariant
Simpler swap
ENH: add explanatory coments
pep8
ENH remove unused constant