Manchester City produced a stunning comeback to beat Tottenham in the Premier League after falling 2-0 behind at half time.