A Survey of Contextual Optimization Methods for Decision Making under Uncertainty