Back to the Source: Diffusion-Driven Test-Time Adaptation