France's far-right suffers surprising defeat in election