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

Thanks.

A test still fails because fitted `X` is not of a dimensionality  of multiple of 8. Perhaps we should remove the value error since we are using predefined hash size `MAX_HASH_SIZE = np.dtype(HASH_DTYPE).itemsize * 8`. But it maybe a problem if this is being used somewhere else.
Is there a workaround for this?