Rangers throw 3-hitter in 5-0 win over Giants