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

No, `query` is not `dtype='>u4'` (check it in this function!), probably due to the same quirky numpy behaviour.

And I mean there's a solution which is `α2*log(len(bit_string_array)) + β32`, without sequential searches on `bit_string_array`. The idea is that either `np.searchsorted(bit_string_array, query, side='left')` or `np.searchsorted(bit_string_array, query, side='right')` (with some edge cases) will share the maximum size prefix with query. It's just a matter of then determining the prefix size, which should be easy enough.