Andrey Rublev reached the Canadian Open fourth round after a hard-fought three-set win over Lorenzo Sonego