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

Actually, for a fixed hash, varying the number of candidates should be more-or-less the inverse of varying the number of samples.

So I'd be tempted to cut the example back to two plots:
* one showing multiple accuracy curves for different `n_estimators`, with increasing number of samples, while fixing `n_candidates` (but with the x-axis labelled as "n_candidates as proportion of index size")
* one showing time compared to brute force search over that increasing number of samples (and number of estimators).

So the calculation code could look like a single experiment:
```python
X, _ = make_blobs(n_samples=n_samples + n_iter, ...)
X_index = X[:n_samples]
X_query = X[n_samples:]
for n_samples in [...]:
    nbrs = NearestNeighbors(n_neighbors=1, ...)
    nbrs.fit(X_index)
    time ...
    true_neighbors = nbrs.kneighbors(X_query)
    time ...
    for n_estimators in [...]:
        lshf = LSHForest(n_candidates=100, n_neighbors=1, n_estimators=n_estimators).fit(X_index)
        time ...
        pred_neighbors = lshf.kneighbors(X_query)
        time ...
        acc = accuracy_score(true_neighbors, pred_neighbors)
```