Elon Musk agrees to buy Twitter for $44bn