Kmeans clustering implemented, with units tests against sklearn.