Electrical Flows and Laplacian Systems: A New Tool for Graph Algorithms