Information-Theoretic Software Clustering