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

Choosing fixed 5k (or any number) of candidates may not be practical sometimes because 5k can be greater than index size. What if only k distinct candidates are chosen randomly and returned? In fact choosing 5k candidates causes more distance computations which is redundant is such situation.