Exploring the Landscape of Machine Unlearning: A Comprehensive Survey and Taxonomy