Practical Large-Scale Linear Programming using Primal-Dual Hybrid Gradient