Dozens have been injured and more than 300 homes damaged after a tornado swept through a small village in southwestern France.