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

I notice that BallTree, KDTree are classes named for datastructures (not functionality), why is this different? because there is currently only one implementation for ANN? Note that for ANN, knowing the approximation being made is part of the functionality (as opposed to a mere speed different between algorithms that solve the exact problem).