[MRG] Locality Sensitive Hashing for approximate nearest neighbor search(GSoC)

Actually, returning insufficient candidates requires a backup approach (e.g. fill slots without candidates arbitrarily).

And add a test in which you fit it with a very small dataset and manually check that for the given `random_state` there are no candidates returned.