Last-Iterate Convergence: Zero-Sum Games and Constrained Min-Max Optimization