From Data to Decisions: Distributionally Robust Optimization is Optimal