Two-Stage Stochastic Mixed Integer Nonlinear Programming: Theory, Algorithms, And Applications