A Comprehensive Survey of Machine Unlearning Techniques for Large Language Models