Comcast to buy Time Warner Cable for $45 billion