Models, Theoretical Properties, And Solution Approaches For Stochastic Programming With Endogenous Uncertainty