Emmanuel Macron calls snap election after huge far-right gains in EU vote