An Improved and Generalised Analysis for Spectral Clustering