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

I don't think an error is a good idea in this case, but a warning may be suitable: in the example you presented (`X_train = [[5, 5, 2], [21, 5, 5], [1, 1, 1], [8, 9, 1], [6, 10, 2]]; X_test = [[9, 1, 6], [3, 1, 10], [7, 10, 3]]; n_neighbors=2`, setting `random_state=33` will trigger this error, not because *all* queries cannot be answered, but because some cannot.

Could you also explain to me why in the forest paradigm (rather than discrete buckets for each hash) this is occurring? Surely there are hashes closest to the input's hash for any input... Is this actually a deeper issue in that as long as `n_train_samples >= n_candidates` there should be sufficient output from the forest?