AstraZeneca agrees deals to deliver at least 400 million doses of a Covid-19 vaccine, providing it works.