Viviani races to second consecutive stage win at Giro