Generali to buy Liberty Mutual's Spanish Unit in $2.5 billion all-cash deal