Energy Transfer to buy Williams for $37.7 billion