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

Sorry, I forgot to push my last commit. Actually the way you suggested is faster when using numpy arrays. I tested it with lists. The operations: conversion from list to tuple and dictionary lookup is fast but when using numpy arrays, these operations are slow. But the signed projections are in numpy arrays so your method outperforms the caching method. Thank you @jnothman :)