Oil giant CNOOC to buy Canada's Nexen for $15.1B