John Stones has joined Manchester City from Everton for £47.5m, signing a six-year deal for Pep Guardiola's team.