[MRG] Locality Sensitive Hashing for approximate nearest neighbor search

New PR created from #3304
Please add `# Called once on fitting, output is independent of hashes` just as an aid to the reader.