Initial commit for k-means clustering algorithm

Includes support for random and k-means++ initialization