Kmeans cleanup

I guess this needs to be updated.
Also I think you can move it to the KMeans class, the base class is a hidden internal one, it needs documentation for developers (base class for KMeans algorithms, these are the methods that have to be overridden, etc)