[MRG] Locality Sensitive Hashing for approximate nearest neighbor search

New PR created from #3304
I meant that this can only be applied to `kneighbors` while `radius_neighbors` need to remain the same(with list representation). That's not consistent, right?