Finite knot surgeries and Heegaard Floer homology