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

Actually when it comes to conversion of bit arrays to integers,  `np.packbits` gets slower. `uint8` type is returned by`np.packbits` and for a 32 bit array, 4 `uint8` number are returned. To get the final result, those 4 values have to be used as: `test[0]*(2**24)+test[1]*(2**16)+test[2]*(2**8)+test[3]` where `test` is the array returned from `np.packbits` for a 32 long bit array.
Average time taken for this operation is 7.43 µs where as the cache and tuple version takes only 550 ns.