[WIP] Sparse matrix support for Decision tree

Implementation relies on a new method "sparse_get_item()", which was tested separately.

There are two open issues:

1- sparse toy dataset test is failing
Arrays are not equal
Failed with DecisionTreeClassifier
(mismatch 33.3333333333%)
 x: array([-1,  1, -1])
 y: array([-1,  1,  1])


2- as Gilles [pointed out](https://github.com/eltermann/scikit-learn/commit/5ba9c367661446c3eba7e6ea54adc1ff5cdfd39f#commitcomment-5316571), sparse_get_item() implementation should be optimized.