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

I already saw this. But I think this implementation of random projections does not cohere with the context of Locality sensitive hashing algorithms. The main goal of this version is dimensionality reduction, but in LSH it is not the only case. See [Locality-sensitive hashing](http://en.wikipedia.org/wiki/Locality-sensitive_hashing). Other than that, there are many other LSH families as well(Which I need to implement later in the project). 
To put it simply, what we want here is much simpler than `BaseRandomProjection` (For random projection as LSH algorithm). To get the dot product of the all vectors in the data set with a fixed random vector.