Add common interface for all clustering approches and add wrappers
e.g. input double[][] and output int[] for labels, where label[i] is the cluster of the i-th component
e.g. input double[][] and output int[] for labels, where label[i] is the cluster of the i-th component