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

Euclidean distances are computed for an array of candidates(which is a 1D array). In the `radius_neighbors` method, this has to be computed for each time the `max_depth` is decreased. So it is calculated multiple times. But it cannot be wrapped into a single matrix because the size of candidate array differ for each `max_depth` and the `radius_neighbors` to `total_candidates` ratio should be checked for each `max_depth` value to ensure whether that ratio is within the given range.