DiffLM: Controllable Synthetic Data Generation via Diffusion Language Models