Why has French President Emmanuel Macron announced snap elections after EU Parliament poll defeat?