Accurate surface and adsorption energies from many-body perturbation theory