Collective surface diffusion: n-fold way kinetic Monte Carlo simulation