Giants walk off on Cardinals, take 2-1 NLCS lead