Lando Norris moved ahead of McLaren teammate Oscar Piastri to lead Formula 1's championship for the first time since April with a dominant win at an entertaining Mexico City Grand Prix.