Theresa May, Britain's prime minister, has shocked the country by announcing plans for a snap general election in just under two months on June 8.