Controllable Text Generation for Large Language Models: A Survey