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

Perhaps if it's called only once it's not worth vectorizing. Still, it would be faster. You can generate the binary masks with something like:
```python
np.triu(np.ones((max_label_length + 1, max_label_length + 1), dtype=int))[::-1, ::-1]
```
I don't see the difference here between the left and right masks. They appear to be identical.