Torus actions, combinatorial topology, and homological algebra