Pfizer to buy Allergan in $160bn deal