Variational Reasoning for Language Models