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

Only `numpy.searchsorted`(twice) and `numpy.arange`(once) methods are called in the `_find_matching_indices` method. Therefore I don't think using Cython for this function will make a significant improvement. I tried to use Cython for the string hashes we had earlier, but it did not make any improvement.
But I can try Cython on `_find_longest_prefix_match` method.