De Beers buys Canadian company for R1bn