Optimizing Optimization: Scalable Convex Programming with Proximal Operators