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

Fair enough re repetition. But I think this is a case we hope to see little of in practice, and will give a warning so that at least the attentive user (or someone debugging linear dependence, for instance) might realise there is something anomalous.

If there is randomness, I don't think `random_state` should be shared with `fit` (if it's an RNG instance, rather than a seed). Perhaps we could seed it on the query instance itself, but this sounds complicated!