[MRG] Sparse output KNN

- [x] ~~Implement Cython CSR rowise mode function in sparsefuncs_fast~~
- [x] ~~Implement Cython CSR rowise weighted_mode function in sparsefuncs_fast~~
- [x] ~~Backport scipy sparse advanced indexing~~


This PR originally started out with Cython based improvements, but a middle ground has been chosen for simplicity of implementation.
If not, `np.where(x)[0][0]` === np.argmax(x)` (as long as the former wouldn't have produced an `IndexError`).