Split LSH class RandomProjectionAlgorithm and LSHTable that abstracts hash algorithm from hash table behavior. Moved code into headers to support templating