Cenovus to buy Husky for $2.9B to create No.3 Canadian energy firm