WIP : Approximate nearest neighbor search in KMeans.

This is an early PR for adding random-projection based nearest neighbor search in KMeans. The for loop in `_labels_inertia_random_projection` cannot be done efficiently in pure Python as far as I see it.