A Comprehensive Review on Harnessing Large Language Models to Overcome Recommender System Challenges