A Comprehensive Review of AI-based Intelligent Tutoring Systems: Applications and Challenges