Erling Haaland has signed a sensational new contract at Manchester City until 2034, effectively ending links to Real Madrid in the future.