Supporting what-if analysis, why-not questions, infeasibility diagnosis, sensitivity analysis, and iterative updates to existing optimization models