AstraZeneca buys Almirall lung drugs for up to $2.1 billion