Erling Haaland has signed a Premier League record nine-and-a-half-year contract extension at Manchester City that will keep him with the club until 2034.