A Unified Framework for Utility Maximization Problems: an Orlicz Space Approach