Giro d'Italia: Viviani wins sprint in Genoa