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

I think number of candidates( `n_samples` in this example) does not matter much to this speed bottleneck. 'n_features` is what affects the speed of this operation greatly. When I set `n_samples=100` and run the test, I get following results for large `n_features`.

n_features = 10000 :
without loop: 3.37 ms
with loop: 2.78 ms

n_features = 20000 :
without loop: 8.22 ms
with loop: 5.22 ms

LSHF does reduces `n_samples` but, it cannot help with the high dimension. Eventhougth it limits the number of candidates, there is a possibility of getting around 10000 candidates if the size of database is very large(around 1000k or so).