Offline Model-Based Optimization: Comprehensive Review