Single-Peakedness and Total Unimodularity: New Polynomial-Time Algorithms for Multi-Winner Elections