Improving Causal Reasoning in Large Language Models: A Survey