ADOPT: Sequential Approximate Design Optimization including Uncertainties, Discontinuities and Discrete Design variables