Schlumberger to buy Cameron for $14.8 billion