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

@jnothman , I have used that method to generate a seed from overall RNG in a previous commit but has been changed later. See: [https://github.com/maheshakya/scikit-learn/commit/83a03e8f6597ffc8ad846b937ae3e2673aa2ed2e](https://github.com/maheshakya/scikit-learn/commit/83a03e8f6597ffc8ad846b937ae3e2673aa2ed2e)

Apart from that, isn't GaussianRandomProjection capable handling that issue? Within that, `gaussian_random_matrix` function generates random matrix from normal distribution of provided seed.
```
rng = check_random_state(random_state)
    components = rng.normal(loc=0.0,
                            scale=1.0 / np.sqrt(n_components),
                            size=(n_components, n_features))
```