Solving Non-smooth Constrained Programs with Lower Complexity than \mathcal{O}(1/\varepsilon) : A Primal-Dual Homotopy Smoothing Approach