Principled Gradient-based Markov Chain Monte Carlo for Text Generation