Covariate-assisted spectral clustering