Added :on_empty parameter to k_means

Added :on_empty parameter to k_means clustering algorithm to allow user to choose the action to take when empty clusters arise.  Options are 'eliminate' (eliminate the empty cluster, the default), 'terminate' (with error), 'random' (choose a point randomly to be the center of the replacement cluster), and 'outlier' (choose the point furthest from its centroid to be the center of the replacement cluster).