[WIP] Use manhattan_distances implemented by SciPy.

This PR is for #3682 .
I remove the `sum_over_features` as @larsmans suggested. I'm not sure if we should use SciPy's version for sparse matrix directly? Anyway, I reserve the original version for spare matrix now. I can remove it anytime.

Thanks.